﻿<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title></title>
    <link rel="stylesheet" href="https://bossanova.uk/jspreadsheet/v4/jexcel.css" type="text/css" />
    <link rel="stylesheet" href="https://jsuites.net/v4/jsuites.css" type="text/css" />
    <script src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
    <script src="https://bossanova.uk/jspreadsheet/v4/jexcel.js"></script>
    <script src="https://jsuites.net/v4/jsuites.js"></script>
    <script src="../js-sdk/md5.js"></script>
    <script src="lib/base64.js"></script>
    <script type="text/javascript">
        var data_t = [
            ["Name", "Code", "Comment", "Title", "", "", "", "", "", "", "", "", "", "", "",""],
            ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""],
            ["Name", "Code", "Comment", "Data Type", "Length", "Precision", "Primary", "Foreign Key", "Mandatory", "Identity", "Form Type", "Required", "Options", "DataMap", "Placeholder", ""],
            ["TaskID", "TaskID", "TaskID", "int", "", "", "X", "", "", "", "", "", "", "", "", ""]
        ];
        //更新时140
        var data_testCase_t = "INSERT INTO BPMInstDrafts (DraftID,Name,ProcessName,CreateDate,ModifyDate,Account,OwnerAccount,FormData,Description,Comments,OwnerPositionID,Type,Header) VALUES (NEWID(),left('{{v}}',50),'{{ProcessName}}',DATEADD(MI,-{{i}},GETDATE()),DATEADD(MI,-{{i}},GETDATE()),'boyanlong','boyanlong','{{xml}}',null,null,-1,'TestingTemplate',null)";
        var data_testCase_formData_t = "<FormData><SN_PUB_FLOWCOMMON><FormNumber>--系统自动生成--</FormNumber><CreateDate>{{datetime}}</CreateDate><CreateUserAccount>boyanlong</CreateUserAccount><CreateUserName>易正-薄延隆</CreateUserName><CreateUserFullName>BPMOU://苏宁环球集团/苏宁环球股份/行政管理中心/信息数据部/boyanlong</CreateUserFullName><CreateDeptName>信息数据部</CreateDeptName></SN_PUB_FLOWCOMMON>{{content}}</FormData>";
        var table;
        var tableObj = {
            main: {},
            dtl: []
        };
        $(function () {
            //debugger
            //<td hiddenexpress="javascript('eval', '([&quot;开始&quot;,&quot;&quot;,&quot;机构财务中心&quot;, &quot;财务审核&quot;, &quot;医美集团负责人&quot;, &quot;秘书接收&quot;, &quot;董事长&quot;, &quot;出纳付款&quot;, &quot;制单会计&quot;].indexOf(Global.StepName) < 0)')">

            ////兼容移动端
            //function eval2(f, g) {
            //    s = "var Global={ StepName: g };" + s;
            //    return eval(s);
            //}

            //javascript('eval', '([&quot;&quot;,&quot;机构财务中心&quot;, &quot;财务审核&quot;, &quot;医美集团负责人&quot;, &quot;秘书接收&quot;, &quot;董事长&quot;, &quot;出纳付款&quot;, &quot;制单会计&quot;].indexOf(Global.StepName) < 0)')
            //javascript('eval', '([&quot;机构财务中心&quot;, &quot;财务审核&quot;, &quot;医美集团负责人&quot;, &quot;秘书接收&quot;, &quot;董事长&quot;, &quot;出纳付款&quot;, &quot;制单会计&quot;].indexOf(Global.StepName) < 0)')

            //debugger
            //javascript('eval', Global.StepName)
            //javascript('eval', '(["", "机构财务中心", "财务审核", "医美集团负责人", "秘书接收", "董事长", "出纳付款", "制单会计"].indexOf(Global.StepName) < 0)')
            //var f = 'alert(["", "机构财务中心", "财务审核", "医美集团负责人", "秘书接收", "董事长", "出纳付款", "制单会计"].indexOf("财务审核") < 0)';
            //window.eval(f);
            init();
            $("#btnCreateTable").click(function () {
                createTable();
            });
            $("#btnCreateHtml").click(function () {
                createHtml();
            });
            $("#btnCreateTestCaseSql").click(function () {
                createTestCaseSql();
            });

        });
        function init() {
            debugger;
            if (!localStorage.getItem("temp-removeCol")) {
                localStorage.setItem("temp-removeCol", "标题,流水号,提交人,申请人,经办人,报销人,所属部门,申请部门,经办部门,部门,发起人部门,报销部门,填写日期,申请日期,经办日期,报销日期");
            }
            $("#txtCols").val(localStorage.getItem("temp-cols"));
            $("#txtRemoveCol").val(localStorage.getItem("temp-removeCol"));
            $("#txtJson").val(localStorage.getItem("temp-json"));
            $("#txtTableNameQZ").val(localStorage.getItem("temp-tableNameQZ"));
            $("#txtTableQZ").val(localStorage.getItem("temp-tableCodeQZ"));
            $("#txtPCode").val(localStorage.getItem("temp-PCode"));
            $("#txtPName").val(localStorage.getItem("temp-PName"));
            $("#txtDCode").val(localStorage.getItem("temp-DCode"));
            $("#txtDName").val(localStorage.getItem("temp-DName"));
            var eData = $.parseJSON(JSON.stringify(data_t));;
            tableObj.main = setExcel(eData);
        }

        function createTestCaseSql() {
            localStorage.setItem("temp-PCode", $("#txtPCode").val());
            localStorage.setItem("temp-PName", $("#txtPName").val());
            localStorage.setItem("temp-DCode", $("#txtDCode").val());
            localStorage.setItem("temp-DName", $("#txtDName").val());

            var tableMainData = $.parseJSON(JSON.stringify(tableObj.main.getData()));
            var tableCode = tableMainData[1][1];
            var tableName = tableMainData[1][0];//表名
            var testCaseArray = [];

            //var _selectCode = $("#txtTestCaseCol").val();
            var textArr = [];
            var _selectCodes = $("#txtTestCaseCol").val().split(",");
            _selectCodes.forEach(function (_selectCode) {
                var _selectRow = getRow(tableMainData, _selectCode);
                var _selectRowOptions = getCellValue(_selectRow, "Options");
                if (!Array.isArray(_selectRowOptions)) {
                    _selectRowOptions = _selectRowOptions.split(",");
                }
                textArr.push(_selectRowOptions);
            });
            //根据数组生成所有组合
            const getCombination = (array) => {
                let resultArry = [];
                array.forEach((arrItem) => {
                    if (resultArry.length === 0) {
                        //resultArry = arrItem
                        while (arrItem.length > 0) {
                            resultArry.push(arrItem.splice(0, 1));
                        }
                        //一维数组时 也转换成多维
                    } else {
                        const emptyArray = [];
                        resultArry.forEach((item) => {
                            arrItem.forEach((value) => {
                                if (Array.isArray(item)) {
                                    emptyArray.push([...item, value])
                                } else {
                                    emptyArray.push([item, value])
                                }
                            })
                        })
                        resultArry = emptyArray
                    }
                });
                return resultArry;
            }
            var _selectRowOptionsArray = getCombination(textArr);
            _selectRowOptionsArray.forEach(function (tcItem, tcIndex) {
                debugger;
                var tableCols = [];
                for (var key in tableMainData) {
                    var row = tableMainData[key];
                    var formType = getCellValue(row, "Form Type");
                    var required = getCellValue(row, "Required");
                    var code = getCellValue(row, "Code");
                    var name = getCellValue(row, "Name");

                    if (!formType || formType == "Form Type" || formType == "serialNumWidget") {
                        continue;
                    }
                    if (required == true || required == "TRUE" || required == "true") {
                        required = true;
                    }
                    var v = '';
                    switch (formType) {
                        case "radioWidget":
                            var options = getCellValue(row, "Options").split(",");
                            v = options[0];
                            break;
                        case "relatedWidget":
                        case "imageWidget":
                        case "attachmentWidget":
                            break;
                        case "apiIntegrationWidget":
                        case "departmentSelectWidget":
                            v = $("#txtDName").val();
                            break;
                        case "personSelectWidget":
                            v = $("#txtPName").val();
                            break;
                        case "dateWidget":
                            v = new Date().toLocaleString();
                            break;
                        case "moneyWidget":
                            //v = Math.random() * 1000;
                            v = Math.ceil(Math.random()*1000);
                            break;
                        case "numberWidget":
                            v = Math.ceil(Math.random()*100);
                            break;
                        case "textWidget":
                            var obj = { row: [] };
                            if (isDataMapCol(tableMainData, row, obj)) {
                                //debugger;
                                var _formType = getCellValue(obj.row, "Form Type");
                                if (_formType == "personSelectWidget") {
                                    v = $("#txtPCode").val();
                                }
                                if (_formType == "departmentSelectWidget") {
                                    v = $("#txtDCode").val();
                                }
                            } else {
                                v = Math.ceil(Math.random() * 100);
                            }
                            break;
                        case "textAreaWidget":
                            v = name + Math.ceil(Math.random()*100);
                            break;
                        default:
                            break
                    }
                    //if (required != true) {
                    //    v = "";
                    //}
                    var _codeIndex = _selectCodes.indexOf(code);
                    if (_codeIndex>=0) {
                        v = tcItem[_codeIndex];
                    }
                    if (code)
                        tableCols.push("<" + code + ">" + v + "</" + code + ">");
                }
                debugger
                var xml = data_testCase_formData_t.replace(/{{datetime}}/g, new Date().toLocaleString()).replace(/{{content}}/g, "<" + tableCode + ">" + tableCols.join("") + "</" + tableCode + ">");;
                var insertSql = data_testCase_t.replace(/{{ProcessName}}/g, tableName).replace(/{{xml}}/g, xml);
                insertSql = insertSql.replace(/{{v}}/g, tcItem.join("&")).replace(/{{i}}/g, tcIndex);
                testCaseArray.push(insertSql);
            });

            $("#txtTestCaseSql").val(testCaseArray.join("\n"));
        }

        function createHtml() {
            var formMainHtml = "";
            var content = "";
            var tableMainData = $.parseJSON(JSON.stringify(tableObj.main.getData()));
            var tableCode = tableMainData[1][1];
            //var tableName = tableMainData[1][0];
            var tableName = tableMainData[1][3];
            for (var key in tableMainData) {
                var row = tableMainData[key];
                var formType = getCellValue(row, "Form Type");
                var required = getCellValue(row, "Required");
                var code = getCellValue(row, "Code");
                var name = getCellValue(row, "Name");
                var placeholder = getCellValue(row,"Placeholder");
                //获取html模板
                if (!formType || formType == "Form Type" || formType =="serialNumWidget") {
                    continue;
                }
                var _html = $("." + formType).html();
                if (required == true || required == "TRUE" || required == "true") {
                    _html = $("." + formType + "Required").html();
                }
                if (!_html) {
                    _html = $(".defaultWidget").html();
                    if (required == true || required == "TRUE" || required == "true") {
                        _html = $(".defaultWidgetRequired").html();
                    }
                }
                _html = _html.replace(/{{code}}/g, code);
                _html = _html.replace(/{{title}}/g, name);
                _html = _html.replace(/{{tableCode}}/g, tableCode);
                _html = _html.replace(/{{placeholder}}/g, placeholder);
                switch (formType) {
                    case "radioWidget":
                        var options = getCellValue(row, "Options").split(",");
                        options = "<asp:ListItem>" + options.join("</asp:ListItem><asp:ListItem>") +"</asp:ListItem>";
                        _html = _html.replace(/{{options}}/g, options);

                        var _atts = "";
                        if (isDataMapCol(tableMainData, row)) {
                            _atts = 'DisableExpress="1"';
                        }
                        _html = _html.replace(/tt=\"atts\"/g, _atts);

                        formMainHtml += _html;
                        break;
                    case "relatedWidget":
                    case "imageWidget":
                    case "attachmentWidget":
                        if (formType == "attachmentWidget") {
                            //debugger;
                            var _tableBoxHtml= $(".tableWidget .tableBox").html();
                            var _tempHtml = "";
                            tableObj.dtl.forEach(function (item,index) {
                                _tempHtml += "{{tableWidget" + index+"}}";
                            });
                            if (tableObj.dtl.length > 0) {
                                _tableBoxHtml = _tableBoxHtml.replace(/{{tableWidget}}/g, _tempHtml);
                                _html = _tableBoxHtml + _html;
                            }
                        }

                        var _atts = "";
                        if (isDataMapCol(tableMainData, row)) {
                            _atts = 'DisableExpress="1"';
                        }
                        _html = _html.replace(/tt=\"atts\"/g, _atts);

                        content += _html;
                        break;
                    case "apiIntegrationWidget":
                        var _XDataBrowserButtonHtml = $(".xbb-" + name).html();
                        if (!_XDataBrowserButtonHtml) {
                            _XDataBrowserButtonHtml = $(".xbb-空").html();
                        }
                        _XDataBrowserButtonHtml = _XDataBrowserButtonHtml.replace(/{{code}}/g, code);
                        _XDataBrowserButtonHtml = _XDataBrowserButtonHtml.replace(/{{tableCode}}/g, tableCode);
                        var _dataMap = getCellValue(row, "DataMap");
                        if (!Array.isArray(_dataMap)) {
                            _dataMap = _dataMap.split(",");
                        }
                        _dataMap.forEach(function (item, index) {
                            _XDataBrowserButtonHtml = _XDataBrowserButtonHtml.replace("{{dataMap" + index + "}}", tableCode + "." + item);
                        });
                        _html = _html.replace(/{{XDataBrowserButton}}/g, _XDataBrowserButtonHtml);

                        var _atts = "";
                        if (isDataMapCol(tableMainData, row)) {
                            _atts = 'DisableExpress="1"';
                        }
                        _html = _html.replace(/tt=\"atts\"/g, _atts);

                        formMainHtml += _html;
                        break;
                    case "departmentSelectWidget":
                    case "personSelectWidget":
                        var _XDataBrowserButtonHtml = $(".xbb-" + formType).html();
                        _XDataBrowserButtonHtml = _XDataBrowserButtonHtml.replace(/{{code}}/g, code);
                        _XDataBrowserButtonHtml = _XDataBrowserButtonHtml.replace(/{{tableCode}}/g, tableCode);
                        var _dataMap = getCellValue(row, "DataMap");
                        if (!Array.isArray(_dataMap)) {
                            _dataMap = _dataMap.split(",");
                        }
                        _dataMap.forEach(function (item, index) {
                            _XDataBrowserButtonHtml = _XDataBrowserButtonHtml.replace("{{dataMap" + index + "}}", tableCode + "." + item);
                        });
                        if (required=="") {
                            _html = _html.replace(/{{XDataBrowserButton}}/g, "");
                        } else {
                            _html = _html.replace(/{{XDataBrowserButton}}/g, _XDataBrowserButtonHtml);

                        }


                        var _atts = "";
                        //if (isDataMapCol(tableMainData, row)) {
                        //    _atts = 'DisableExpress="1"';
                        //}
                        _html = _html.replace(/tt=\"atts\"/g, _atts);
                        if (isDataMapCol(tableMainData, row)) {
                            var $html = $(_html);
                            debugger
                            $html.find("aspxform\\:xtextbox,aspxform\\:xselectoubutton").attr("disableexpress", "1").prop("outerHTML");
                            _html = $html.prop("outerHTML");
                        }
                        if (required.toString() == "") {
                            _html = $(_html).attr("hiddenexpress", "1").prop("outerHTML");
                        }
                        formMainHtml += _html;
                        break;
                    case "describeWidget":
                        formMainHtml += _html;
                        break;
                    case "moneyWidget":
                    case "textWidget":
                    case "textAreaWidget":
                    default:
                        var _atts = "";
                        //if (formType == "departmentSelectWidget") {
                        //    _atts = 'DisableExpress="1"';
                        //}
                        if (isDataMapCol(tableMainData,row)) {
                            _atts = 'DisableExpress="1"';
                        }
                        _html = _html.replace(/tt=\"atts\"/g, _atts);
                        if (required.toString() == "") {
                            debugger;
                            _html = $(_html).attr("hiddenexpress","1").prop("outerHTML");
                        }
                        formMainHtml += _html;
                        break
                }
            }

            //明细表
            if (tableObj.dtl.length > 0 && content.indexOf("{{tableWidget") < 0) {
                var _tableBoxHtml = $(".tableWidget .tableBox").html();
                var _tempHtml = "";
                tableObj.dtl.forEach(function (item, index) {
                    _tempHtml += "{{tableWidget" + index + "}}";
                });
                _tableBoxHtml = _tableBoxHtml.replace(/{{tableWidget}}/g, _tempHtml);
                content += _tableBoxHtml;
            }
            //处理明细表
            tableObj.dtl.forEach(function (item, index) {
                var tableWidgetHtml = $(".table-tt").html();
                var tableDtlData = $.parseJSON(JSON.stringify(item.getData()));
                var tableDtlCode = tableDtlData[1][1];//表名
                var tableDtlTitle = tableDtlData[1][3];//标题
                var ths = "";//列标题
                var tds = "";//列控件
                var tds2 = "";//表格空行
                var tds3 = "";//表格合计行

                for (var key in tableDtlData) {
                    var row = tableDtlData[key];
                    var formType = getCellValue(row, "Form Type");
                    var required = getCellValue(row, "Required");
                    var code = getCellValue(row, "Code");
                    var name = getCellValue(row, "Name");

                    if (!formType || formType == "Form Type" || formType == "serialNumWidget") {
                        continue;
                    }
                    //表头html
                    var _thHtml = $(".tableWidget-th-tt").html();
                    if (required == true || required == "TRUE" || required == "true") {
                        _thHtml = $(".tableWidget-th-tt-required").html();
                    }
                    //debugger;
                    _thHtml = _thHtml.replace(/{{width}}/g, "18%");
                    _thHtml = _thHtml.replace(/{{code}}/g, code);
                    _thHtml = _thHtml.replace(/{{title}}/g, name);
                    _thHtml = _thHtml.replace(/{{tableCode}}/g, tableDtlCode);;
                    ths +="<td>"+ _thHtml+"</td>";

                    //控件html
                    var _tdHtml = $(".tableWidget-" + formType).html();
                    if (!_tdHtml) {
                        _tdHtml = $(".tableWidget-defaultWidget").html();
                    }
                    _tdHtml = _tdHtml.replace(/{{code}}/g, code);
                    _tdHtml = _tdHtml.replace(/{{title}}/g, name);
                    _tdHtml = _tdHtml.replace(/{{tableCode}}/g, tableDtlCode);
                    switch (formType) {
                        case "radioWidget":
                            var options = getCellValue(row, "Options");
                            if (!Array.isArray(options)) {
                                options = options.split(",");
                            }
                            options = "<asp:ListItem>" + options.join("</asp:ListItem><asp:ListItem>") + "</asp:ListItem>";
                            _tdHtml = _tdHtml.replace(/{{options}}/g, options);
                            break;
                    }
                    tds += "<td>"+_tdHtml+"</td>";
                    tds2 += "<td></td>";
                }
                tds3 = tds2;
                tableWidgetHtml = tableWidgetHtml.replace("<td>{{ths}}</td>", ths);
                tableWidgetHtml = tableWidgetHtml.replace("<td>{{tds}}</td>", tds);
                tableWidgetHtml = tableWidgetHtml.replace("<td>{{tds2}}</td>", tds2);
                tableWidgetHtml = tableWidgetHtml.replace("<td>{{tds3}}</td>", tds3);
                tableWidgetHtml = tableWidgetHtml.replace(/{{tableCode}}/g, tableDtlCode);
                tableWidgetHtml = tableWidgetHtml.replace(/{{tableName}}/g, tableDtlTitle);
                content = content.replace("{{tableWidget" + index + "}}", tableWidgetHtml);
            });



            //页面模板替换值
            var pageHtml = $(".pageHtml").html();
            pageHtml = BASE64.decode(pageHtml);//普通Base64解码;
            pageHtml = pageHtml.replace(/{{formMain}}/g, formMainHtml);
            pageHtml = pageHtml.replace(/{{content}}/g, content);
            pageHtml = pageHtml.replace(/{{pageTitle}}/g, tableName);
            $("#pageConten").val(pageHtml);


        }
        //获取单元格的值
        function getCellValue(row, cloName) {
            return row[data_t[2].indexOf(cloName)];
        }
        //是否为DataMap列
        function isDataMapCol(tableData, row, obj) {
            var colName = getCellValue(row, "Code");
            var b = false;
            tableData.forEach(function (item, index) {
                var _dataMap = getCellValue(item, "DataMap");
                if (!Array.isArray(_dataMap)) {
                    _dataMap = _dataMap.split(",");
                }
                if (_dataMap.indexOf(colName) >= 0) {
                    if (obj) {
                        obj.row = item;
                    }
                    b = true;
                }
            });
            return b;
        }
        //获取行
        function getRow(tableData, colName) {
            var _row = [];
            tableData.forEach(function (item, index) {
                var _code = getCellValue(item, "Code");
                if (_code == colName) {
                    _row = item;
                }
            });
            return _row;
        }

        function createTable() {
            localStorage.setItem("temp-PCode", $("#txtPCode").val());
            localStorage.setItem("temp-PName", $("#txtPName").val());
            localStorage.setItem("temp-DCode", $("#txtDCode").val());
            localStorage.setItem("temp-DName", $("#txtDName").val());

            localStorage.setItem("temp-cols", $("#txtCols").val());
            localStorage.setItem("temp-removeCol", $("#txtRemoveCol").val());
            localStorage.setItem("temp-json", $("#txtJson").val());
            localStorage.setItem("temp-tableNameQZ", $("#txtTableNameQZ").val());
            localStorage.setItem("temp-tableCodeQZ", $("#txtTableQZ").val());
            //console.log(JSON.stringify(tableObj.main.getData()))
            data = $.parseJSON($("#txtJson").val());
            var formWidgets = data.data.formTemplate.formWidgets;
            var rows = data.data.formTemplate.webFormLayout.rows;
            var eData = $.parseJSON(JSON.stringify(data_t));
            var eChildDatas = [];
            for (var key in rows) {
                var item = rows[key];

                for (var itemCellKey in item["cells"]) {
                    //debugger;
                    var itemCodeId = item["cells"][itemCellKey].codeId;
                    var formItem = $.grep(formWidgets, function (x, i) {
                        return x.codeId == itemCodeId;
                    })[0];
                    //if (["业务类型", "流程类型", "标题", "流水号", "提交人", "申请人", "经办人", "报销人", "所属部门", "申请部门", "经办部门", "xxxx部门", "发起人部门", "报销部门", "填写日期", "申请日期", "经办日期","报销日期"].some(function (x) { return x == formItem.title; })) {
                    if (["业务类型", "流程类型"].some(function (x) { return x == formItem.title; })) {
                        if (["业务类型", "流程类型"].some(function (x) { return x == formItem.title; })) {
                            eData[1][0] = $("#txtTableNameQZ").val() + "-" + formItem.defaultValue;
                            //eData[1][1] = $("#txtTableQZ").val() + translate(formItem.defaultValue);//翻译标题作为表名
                            eData[1][1] = $("#txtTableQZ").val() + makePy(formItem.defaultValue) +"Request";//转为拼音作为表名
                            eData[1][2] = $("#txtTableNameQZ").val() + "-" + formItem.defaultValue;
                            eData[1][3] = formItem.defaultValue;
                        }
                        continue;
                    }
                    if ($("#txtRemoveCol").val().split(",").some(function (x) { return x == formItem.title; })) {
                        continue;
                    }

                    //if (["personSelectWidget", "departmentSelectWidget"].some(function (x) { return x == formItem.type; })) {
                    //    continue;
                    //}

                    //明细表
                    if (formItem.childCodeIds) {
                        var eChildData = $.parseJSON(JSON.stringify(data_t));
                        eChildData[1][0] = eData[1][0]+"-"+formItem.title;
                        //eChildData[1][1] = $("#txtTableQZ").val() + translate(formItem.title) + "_DTL";//翻译标题作为表名
                        eChildData[1][1] = eData[1][1] + "_DTL" + (eChildDatas.length > 0 ? eChildDatas.length+1 : "");//转为拼音作为表名
                        eChildData[1][2] = eChildData[1][0];
                        eChildData[1][3] = formItem.title;
                        eChildData[3][6] = "";
                        eChildData.push(["ID", "ID", "自增列", "int", "", "", "X", "", "", "X", "", "", "", "", ""]);
                        for (var childCodeIdKey in formItem.childCodeIds) {
                            var childCodeId = formItem.childCodeIds[childCodeIdKey];
                            var childFormItem = $.grep(formWidgets, function (x, i) {
                                return x.codeId == childCodeId;
                            })[0];
                            var _code = translate(childFormItem.title);
                            var _length = 1000;
                            var _precision = "";
                            var _dataType = "nvarchar(1000)";
                            var _childOptions = [];
                            switch (childFormItem.type) {
                                case "moneyWidget":
                                case "arithmeticWidget":
                                    _length = 18;
                                    _precision = 4;
                                    _dataType = "decimal(18,4)";
                                    break
                                case "numberWidget":
                                    //_length = 18;
                                    //_precision = 2;
                                    //_dataType = "decimal(18,2)";
                                    _length = "";
                                    _precision = "";
                                    _dataType = "int";
                                    break;
                                case "dateWidget":
                                    _length = "";
                                    _precision = "";
                                    _dataType = "datetime";
                                    break
                            }
                            if (childFormItem.options) {
                                _childOptions = childFormItem.options.map(function (item) {
                                    return item.value;
                                });
                            }
                            eChildData.push([childFormItem.title, _code, childFormItem.title, _dataType, _length, _precision, "", "", "", "", childFormItem.type, childFormItem.required, _childOptions, "", ""]);
                        }
                        //setExcel(eChildData);
                        eChildDatas.push(eChildData);
                        continue;
                    }

                    var _code = translate(formItem.title);
                    var _length = 1000;
                    var _precision = "";
                    var _dataType = "nvarchar(1000)";
                    var _options = "";
                    var _dataMap = [];
                    switch (formItem.type) {
                        case "moneyWidget":
                        case "arithmeticWidget":
                            _length = 18;
                            _precision = 4;
                            _dataType = "decimal(18,4)";
                            break
                        case "numberWidget":
                            //_length = 18;
                            //_precision = 2;
                            //_dataType = "decimal(18,2)";
                            _length = "";
                            _precision = "";
                            _dataType = "int";
                            break;
                        case "dateWidget":
                            _length = "";
                            _precision = "";
                            _dataType = "datetime";
                            break
                        case "describeWidget":
                            _length = "";
                            _precision = "";
                            _dataType = "";
                            _code = "";
                            if (formItem.describeTitle) {
                                formItem.title = formItem.describeTitle;
                            }
                            break;
                        case "apiIntegrationWidget":
                        //case "personSelectWidget":
                            formItem.assignRule.forEach(function (_item, _index) {
                                var _code2 = translate(_item.fieldName);
                                _item.code = _code2;
                                _dataMap.push(_code2);
                            });
                            break
                        case "personSelectWidget":
                        case "departmentSelectWidget":
                            _dataMap = _code + "Code";
                            eData.push([formItem.title + "编号", _code + "Code", formItem.title + "编号", _dataType, _length, _precision, "", "", "", "", "textWidget", "", "", "", ""]);
                            break;
                    }
                    if (formItem.options) {
                        _options = formItem.options.map(function (item) {
                            return item.value;
                        }).join();
                    }
                    eData.push([formItem.title, _code, formItem.title, _dataType, _length, _precision, "", "", "", "", formItem.type, formItem.required, _options, _dataMap, formItem.placeholder]);
                    //判断是否有开窗带出项（DataMap）
                    switch (formItem.type) {
                        case "apiIntegrationWidget":
                            formItem.assignRule.forEach(function (_item, _index) {
                                //var _code2 = translate(_item.fieldName);
                                _code2 = _item.code;
                                eData.push([_item.fieldName, _code2, _item.fieldName, "nvarchar(100)", 100, "", "", "", "", "", _item.widgetType, "", "", "", ""]);
                            });
                            break;
                    }
                }

            }
            $("#txtCols").val().split(",").forEach(function (item, index) {
                eData.push(["预留-" + item, "col" + (index + 1), "预留-" + item, "nvarchar(50)", "50", "", "", "", "", "", "textWidget", "", "", "", ""]);
            });
            $("#sheetBox").empty();
            tableObj = {
                main: {},
                dtl: []
            };
            //生成主表
            tableObj.main = setExcel(eData, 0);
            //生成明细表
            for (var key in eChildDatas) {
                tableObj.dtl.push(setExcel(eChildDatas[key], key + 1));
            }

            //for (var key in formWidgets) {
            //    var formItem = formWidgets[key];
            //    eData.push([formItem.title, "", formItem.title, "nvarchar(1000)", "1000", "", "", "", "", ""]);
            //}
            //setExcel(eData);
        }
        function setExcel(data, sn) {
            var bg_color = "#8EA9DB";
            var bg_color2 = "#009688";
            //var data = [
            //    ['Jazz', 'Honda', '2019-02-12', '', true, '$ 2.000,00', '#777700'],
            //    ['Civic', 'Honda', '2018-07-11', '', true, '$ 4.000,01', '#007777'],
            //];
            //if (empty) {
            //    $("#spreadsheet").empty();
            //}
            $("#sheetBox").append("<div id='sheetBox" + sn + "'><div>");
            var _table = jspreadsheet(document.getElementById('sheetBox' + sn), {
                data: data,
                minDimensions: [12, 5],
                columns: [
                    { type: 'text', title: 'A', width: 260 },
                    { type: 'text', title: 'B', width: 260 },
                    { type: 'text', title: 'C', width: 260 },
                    { type: 'text', title: 'D', width: 140 },
                    { type: 'text', title: 'E', width: 60 },
                    { type: 'text', title: 'F', width: 60 },
                    { type: 'text', title: 'G', width: 60 },
                    { type: 'text', title: 'H', width: 60 },
                    { type: 'text', title: 'I', width: 60 },
                    { type: 'text', title: 'J', width: 60 },
                    { type: 'text', title: 'K', width: 180 },
                    { type: 'text', title: 'L', width: 60 },
                    { type: 'text', title: 'M', width: 100 },
                    { type: 'text', title: 'N', width: 100 },
                    { type: 'text', title: 'O', width: 100 }
                ]
            });

            _table.setStyle({
                'A1': 'background-color:' + bg_color,
                'B1': 'background-color:' + bg_color,
                'C1': 'background-color:' + bg_color,
                'D1': 'background-color:' + bg_color2,
                'A3': 'background-color:' + bg_color,
                'B3': 'background-color:' + bg_color,
                'C3': 'background-color:' + bg_color,
                'D3': 'background-color:' + bg_color,
                'E3': 'background-color:' + bg_color,
                'F3': 'background-color:' + bg_color,
                'G3': 'background-color:' + bg_color,
                'H3': 'background-color:' + bg_color,
                'I3': 'background-color:' + bg_color,
                'J3': 'background-color:' + bg_color,
                'K3': 'background-color:' + bg_color2,
                'L3': 'background-color:' + bg_color2,
                'M3': 'background-color:' + bg_color2,
                'N3': 'background-color:' + bg_color2,
                'O3': 'background-color:' + bg_color2,
            });
            //table.setStyle('A3', 'background-color', 'yellow')
            return _table;
        }
        function translate(q) {
            var r = "";
            $.ajax({
                url: '/api/Baidu/Translate?q=' + q,
                async: false,
                type: 'post',
                //dataType: 'json',
                //data: {
                //    q: q
                //},
                success: function (data) {
                    r = data;
                }
            });
            debugger;
            r = r.replace("(", "").replace(")", "").replace("'", "").replace("/", "");
            return convert(r);
        }
        function convert(str) {
            var arr = str.trim().split(" ");
            var arr2 = [];
            for (var key in arr) {
                arr2.push(UpperFirstLetter(arr[key]));
            }
            return arr2.join("");
        }
        function UpperFirstLetter(str) {
            return str.replace(/\b\w+\b/g, function (word) {
                return word.substring(0, 1).toUpperCase() + word.substring(1);
            });
        }

        /*汉字首字母转拼音*/
        // 汉字拼音首字母列表 本列表包含了20902个汉字,用于配合 ToChineseSpell
        //函数使用,本表收录的字符的Unicode编码范围为19968至40869, XDesigner 整理
        var strChineseFirstPY = "YDYQSXMWZSSXJBYMGCCZQPSSQBYCDSCDQLDYLYBSSJGYZZJJFKCCLZDHWDWZJLJPFYYNWJJTMYHZWZHFLZPPQHGSCYYYNJQYXXGJHHSDSJNKKTMOMLCRXYPSNQSECCQZGGLLYJLMYZZSECYKYYHQWJSSGGYXYZYJWWKDJHYCHMYXJTLXJYQBYXZLDWRDJRWYSRLDZJPCBZJJBRCFTLECZSTZFXXZHTRQHYBDLYCZSSYMMRFMYQZPWWJJYFCRWFDFZQPYDDWYXKYJAWJFFXYPSFTZYHHYZYSWCJYXSCLCXXWZZXNBGNNXBXLZSZSBSGPYSYZDHMDZBQBZCWDZZYYTZHBTSYYBZGNTNXQYWQSKBPHHLXGYBFMJEBJHHGQTJCYSXSTKZHLYCKGLYSMZXYALMELDCCXGZYRJXSDLTYZCQKCNNJWHJTZZCQLJSTSTBNXBTYXCEQXGKWJYFLZQLYHYXSPSFXLMPBYSXXXYDJCZYLLLSJXFHJXPJBTFFYABYXBHZZBJYZLWLCZGGBTSSMDTJZXPTHYQTGLJSCQFZKJZJQNLZWLSLHDZBWJNCJZYZSQQYCQYRZCJJWYBRTWPYFTWEXCSKDZCTBZHYZZYYJXZCFFZZMJYXXSDZZOTTBZLQWFCKSZSXFYRLNYJMBDTHJXSQQCCSBXYYTSYFBXDZTGBCNSLCYZZPSAZYZZSCJCSHZQYDXLBPJLLMQXTYDZXSQJTZPXLCGLQTZWJBHCTSYJSFXYEJJTLBGXSXJMYJQQPFZASYJNTYDJXKJCDJSZCBARTDCLYJQMWNQNCLLLKBYBZZSYHQQLTWLCCXTXLLZNTYLNEWYZYXCZXXGRKRMTCNDNJTSYYSSDQDGHSDBJGHRWRQLYBGLXHLGTGXBQJDZPYJSJYJCTMRNYMGRZJCZGJMZMGXMPRYXKJNYMSGMZJYMKMFXMLDTGFBHCJHKYLPFMDXLQJJSMTQGZSJLQDLDGJYCALCMZCSDJLLNXDJFFFFJCZFMZFFPFKHKGDPSXKTACJDHHZDDCRRCFQYJKQCCWJDXHWJLYLLZGCFCQDSMLZPBJJPLSBCJGGDCKKDEZSQCCKJGCGKDJTJDLZYCXKLQSCGJCLTFPCQCZGWPJDQYZJJBYJHSJDZWGFSJGZKQCCZLLPSPKJGQJHZZLJPLGJGJJTHJJYJZCZMLZLYQBGJWMLJKXZDZNJQSYZMLJLLJKYWXMKJLHSKJGBMCLYYMKXJQLBMLLKMDXXKWYXYSLMLPSJQQJQXYXFJTJDXMXXLLCXQBSYJBGWYMBGGBCYXPJYGPEPFGDJGBHBNSQJYZJKJKHXQFGQZKFHYGKHDKLLSDJQXPQYKYBNQSXQNSZSWHBSXWHXWBZZXDMNSJBSBKBBZKLYLXGWXDRWYQZMYWSJQLCJXXJXKJEQXSCYETLZHLYYYSDZPAQYZCMTLSHTZCFYZYXYLJSDCJQAGYSLCQLYYYSHMRQQKLDXZSCSSSYDYCJYSFSJBFRSSZQSBXXPXJYSDRCKGJLGDKZJZBDKTCSYQPYHSTCLDJDHMXMCGXYZHJDDTMHLTXZXYLYMOHYJCLTYFBQQXPFBDFHHTKSQHZYYWCNXXCRWHOWGYJLEGWDQCWGFJYCSNTMYTOLBYGWQWESJPWNMLRYDZSZTXYQPZGCWXHNGPYXSHMYQJXZTDPPBFYHZHTJYFDZWKGKZBLDNTSXHQEEGZZYLZMMZYJZGXZXKHKSTXNXXWYLYAPSTHXDWHZYMPXAGKYDXBHNHXKDPJNMYHYLPMGOCSLNZHKXXLPZZLBMLSFBHHGYGYYGGBHSCYAQTYWLXTZQCEZYDQDQMMHTKLLSZHLSJZWFYHQSWSCWLQAZYNYTLSXTHAZNKZZSZZLAXXZWWCTGQQTDDYZTCCHYQZFLXPSLZYGPZSZNGLNDQTBDLXGTCTAJDKYWNSYZLJHHZZCWNYYZYWMHYCHHYXHJKZWSXHZYXLYSKQYSPSLYZWMYPPKBYGLKZHTYXAXQSYSHXASMCHKDSCRSWJPWXSGZJLWWSCHSJHSQNHCSEGNDAQTBAALZZMSSTDQJCJKTSCJAXPLGGXHHGXXZCXPDMMHLDGTYBYSJMXHMRCPXXJZCKZXSHMLQXXTTHXWZFKHCCZDYTCJYXQHLXDHYPJQXYLSYYDZOZJNYXQEZYSQYAYXWYPDGXDDXSPPYZNDLTWRHXYDXZZJHTCXMCZLHPYYYYMHZLLHNXMYLLLMDCPPXHMXDKYCYRDLTXJCHHZZXZLCCLYLNZSHZJZZLNNRLWHYQSNJHXYNTTTKYJPYCHHYEGKCTTWLGQRLGGTGTYGYHPYHYLQYQGCWYQKPYYYTTTTLHYHLLTYTTSPLKYZXGZWGPYDSSZZDQXSKCQNMJJZZBXYQMJRTFFBTKHZKBXLJJKDXJTLBWFZPPTKQTZTGPDGNTPJYFALQMKGXBDCLZFHZCLLLLADPMXDJHLCCLGYHDZFGYDDGCYYFGYDXKSSEBDHYKDKDKHNAXXYBPBYYHXZQGAFFQYJXDMLJCSQZLLPCHBSXGJYNDYBYQSPZWJLZKSDDTACTBXZDYZYPJZQSJNKKTKNJDJGYYPGTLFYQKASDNTCYHBLWDZHBBYDWJRYGKZYHEYYFJMSDTYFZJJHGCXPLXHLDWXXJKYTCYKSSSMTWCTTQZLPBSZDZWZXGZAGYKTYWXLHLSPBCLLOQMMZSSLCMBJCSZZKYDCZJGQQDSMCYTZQQLWZQZXSSFPTTFQMDDZDSHDTDWFHTDYZJYQJQKYPBDJYYXTLJHDRQXXXHAYDHRJLKLYTWHLLRLLRCXYLBWSRSZZSYMKZZHHKYHXKSMDSYDYCJPBZBSQLFCXXXNXKXWYWSDZYQOGGQMMYHCDZTTFJYYBGSTTTYBYKJDHKYXBELHTYPJQNFXFDYKZHQKZBYJTZBXHFDXKDASWTAWAJLDYJSFHBLDNNTNQJTJNCHXFJSRFWHZFMDRYJYJWZPDJKZYJYMPCYZNYNXFBYTFYFWYGDBNZZZDNYTXZEMMQBSQEHXFZMBMFLZZSRXYMJGSXWZJSPRYDJSJGXHJJGLJJYNZZJXHGXKYMLPYYYCXYTWQZSWHWLYRJLPXSLSXMFSWWKLCTNXNYNPSJSZHDZEPTXMYYWXYYSYWLXJQZQXZDCLEEELMCPJPCLWBXSQHFWWTFFJTNQJHJQDXHWLBYZNFJLALKYYJLDXHHYCSTYYWNRJYXYWTRMDRQHWQCMFJDYZMHMYYXJWMYZQZXTLMRSPWWCHAQBXYGZYPXYYRRCLMPYMGKSJSZYSRMYJSNXTPLNBAPPYPYLXYYZKYNLDZYJZCZNNLMZHHARQMPGWQTZMXXMLLHGDZXYHXKYXYCJMFFYYHJFSBSSQLXXNDYCANNMTCJCYPRRNYTYQNYYMBMSXNDLYLYSLJRLXYSXQMLLYZLZJJJKYZZCSFBZXXMSTBJGNXYZHLXNMCWSCYZYFZLXBRNNNYLBNRTGZQYSATSWRYHYJZMZDHZGZDWYBSSCSKXSYHYTXXGCQGXZZSHYXJSCRHMKKBXCZJYJYMKQHZJFNBHMQHYSNJNZYBKNQMCLGQHWLZNZSWXKHLJHYYBQLBFCDSXDLDSPFZPSKJYZWZXZDDXJSMMEGJSCSSMGCLXXKYYYLNYPWWWGYDKZJGGGZGGSYCKNJWNJPCXBJJTQTJWDSSPJXZXNZXUMELPXFSXTLLXCLJXJJLJZXCTPSWXLYDHLYQRWHSYCSQYYBYAYWJJJQFWQCQQCJQGXALDBZZYJGKGXPLTZYFXJLTPADKYQHPMATLCPDCKBMTXYBHKLENXDLEEGQDYMSAWHZMLJTWYGXLYQZLJEEYYBQQFFNLYXRDSCTGJGXYYNKLLYQKCCTLHJLQMKKZGCYYGLLLJDZGYDHZWXPYSJBZKDZGYZZHYWYFQYTYZSZYEZZLYMHJJHTSMQWYZLKYYWZCSRKQYTLTDXWCTYJKLWSQZWBDCQYNCJSRSZJLKCDCDTLZZZACQQZZDDXYPLXZBQJYLZLLLQDDZQJYJYJZYXNYYYNYJXKXDAZWYRDLJYYYRJLXLLDYXJCYWYWNQCCLDDNYYYNYCKCZHXXCCLGZQJGKWPPCQQJYSBZZXYJSQPXJPZBSBDSFNSFPZXHDWZTDWPPTFLZZBZDMYYPQJRSDZSQZSQXBDGCPZSWDWCSQZGMDHZXMWWFYBPDGPHTMJTHZSMMBGZMBZJCFZWFZBBZMQCFMBDMCJXLGPNJBBXGYHYYJGPTZGZMQBQTCGYXJXLWZKYDPDYMGCFTPFXYZTZXDZXTGKMTYBBCLBJASKYTSSQYYMSZXFJEWLXLLSZBQJJJAKLYLXLYCCTSXMCWFKKKBSXLLLLJYXTYLTJYYTDPJHNHNNKBYQNFQYYZBYYESSESSGDYHFHWTCJBSDZZTFDMXHCNJZYMQWSRYJDZJQPDQBBSTJGGFBKJBXTGQHNGWJXJGDLLTHZHHYYYYYYSXWTYYYCCBDBPYPZYCCZYJPZYWCBDLFWZCWJDXXHYHLHWZZXJTCZLCDPXUJCZZZLYXJJTXPHFXWPYWXZPTDZZBDZCYHJHMLXBQXSBYLRDTGJRRCTTTHYTCZWMXFYTWWZCWJWXJYWCSKYBZSCCTZQNHXNWXXKHKFHTSWOCCJYBCMPZZYKBNNZPBZHHZDLSYDDYTYFJPXYNGFXBYQXCBHXCPSXTYZDMKYSNXSXLHKMZXLYHDHKWHXXSSKQYHHCJYXGLHZXCSNHEKDTGZXQYPKDHEXTYKCNYMYYYPKQYYYKXZLTHJQTBYQHXBMYHSQCKWWYLLHCYYLNNEQXQWMCFBDCCMLJGGXDQKTLXKGNQCDGZJWYJJLYHHQTTTNWCHMXCXWHWSZJYDJCCDBQCDGDNYXZTHCQRXCBHZTQCBXWGQWYYBXHMBYMYQTYEXMQKYAQYRGYZSLFYKKQHYSSQYSHJGJCNXKZYCXSBXYXHYYLSTYCXQTHYSMGSCPMMGCCCCCMTZTASMGQZJHKLOSQYLSWTMXSYQKDZLJQQYPLSYCZTCQQPBBQJZCLPKHQZYYXXDTDDTSJCXFFLLCHQXMJLWCJCXTSPYCXNDTJSHJWXDQQJSKXYAMYLSJHMLALYKXCYYDMNMDQMXMCZNNCYBZKKYFLMCHCMLHXRCJJHSYLNMTJZGZGYWJXSRXCWJGJQHQZDQJDCJJZKJKGDZQGJJYJYLXZXXCDQHHHEYTMHLFSBDJSYYSHFYSTCZQLPBDRFRZTZYKYWHSZYQKWDQZRKMSYNBCRXQBJYFAZPZZEDZCJYWBCJWHYJBQSZYWRYSZPTDKZPFPBNZTKLQYHBBZPNPPTYZZYBQNYDCPJMMCYCQMCYFZZDCMNLFPBPLNGQJTBTTNJZPZBBZNJKLJQYLNBZQHKSJZNGGQSZZKYXSHPZSNBCGZKDDZQANZHJKDRTLZLSWJLJZLYWTJNDJZJHXYAYNCBGTZCSSQMNJPJYTYSWXZFKWJQTKHTZPLBHSNJZSYZBWZZZZLSYLSBJHDWWQPSLMMFBJDWAQYZTCJTBNNWZXQXCDSLQGDSDPDZHJTQQPSWLYYJZLGYXYZLCTCBJTKTYCZJTQKBSJLGMGZDMCSGPYNJZYQYYKNXRPWSZXMTNCSZZYXYBYHYZAXYWQCJTLLCKJJTJHGDXDXYQYZZBYWDLWQCGLZGJGQRQZCZSSBCRPCSKYDZNXJSQGXSSJMYDNSTZTPBDLTKZWXQWQTZEXNQCZGWEZKSSBYBRTSSSLCCGBPSZQSZLCCGLLLZXHZQTHCZMQGYZQZNMCOCSZJMMZSQPJYGQLJYJPPLDXRGZYXCCSXHSHGTZNLZWZKJCXTCFCJXLBMQBCZZWPQDNHXLJCTHYZLGYLNLSZZPCXDSCQQHJQKSXZPBAJYEMSMJTZDXLCJYRYYNWJBNGZZTMJXLTBSLYRZPYLSSCNXPHLLHYLLQQZQLXYMRSYCXZLMMCZLTZSDWTJJLLNZGGQXPFSKYGYGHBFZPDKMWGHCXMSGDXJMCJZDYCABXJDLNBCDQYGSKYDQTXDJJYXMSZQAZDZFSLQXYJSJZYLBTXXWXQQZBJZUFBBLYLWDSLJHXJYZJWTDJCZFQZQZZDZSXZZQLZCDZFJHYSPYMPQZMLPPLFFXJJNZZYLSJEYQZFPFZKSYWJJJHRDJZZXTXXGLGHYDXCSKYSWMMZCWYBAZBJKSHFHJCXMHFQHYXXYZFTSJYZFXYXPZLCHMZMBXHZZSXYFYMNCWDABAZLXKTCSHHXKXJJZJSTHYGXSXYYHHHJWXKZXSSBZZWHHHCWTZZZPJXSNXQQJGZYZYWLLCWXZFXXYXYHXMKYYSWSQMNLNAYCYSPMJKHWCQHYLAJJMZXHMMCNZHBHXCLXTJPLTXYJHDYYLTTXFSZHYXXSJBJYAYRSMXYPLCKDUYHLXRLNLLSTYZYYQYGYHHSCCSMZCTZQXKYQFPYYRPFFLKQUNTSZLLZMWWTCQQYZWTLLMLMPWMBZSSTZRBPDDTLQJJBXZCSRZQQYGWCSXFWZLXCCRSZDZMCYGGDZQSGTJSWLJMYMMZYHFBJDGYXCCPSHXNZCSBSJYJGJMPPWAFFYFNXHYZXZYLREMZGZCYZSSZDLLJCSQFNXZKPTXZGXJJGFMYYYSNBTYLBNLHPFZDCYFBMGQRRSSSZXYSGTZRNYDZZCDGPJAFJFZKNZBLCZSZPSGCYCJSZLMLRSZBZZLDLSLLYSXSQZQLYXZLSKKBRXBRBZCYCXZZZEEYFGKLZLYYHGZSGZLFJHGTGWKRAAJYZKZQTSSHJJXDCYZUYJLZYRZDQQHGJZXSSZBYKJPBFRTJXLLFQWJHYLQTYMBLPZDXTZYGBDHZZRBGXHWNJTJXLKSCFSMWLSDQYSJTXKZSCFWJLBXFTZLLJZLLQBLSQMQQCGCZFPBPHZCZJLPYYGGDTGWDCFCZQYYYQYSSCLXZSKLZZZGFFCQNWGLHQYZJJCZLQZZYJPJZZBPDCCMHJGXDQDGDLZQMFGPSYTSDYFWWDJZJYSXYYCZCYHZWPBYKXRYLYBHKJKSFXTZJMMCKHLLTNYYMSYXYZPYJQYCSYCWMTJJKQYRHLLQXPSGTLYYCLJSCPXJYZFNMLRGJJTYZBXYZMSJYJHHFZQMSYXRSZCWTLRTQZSSTKXGQKGSPTGCZNJSJCQCXHMXGGZTQYDJKZDLBZSXJLHYQGGGTHQSZPYHJHHGYYGKGGCWJZZYLCZLXQSFTGZSLLLMLJSKCTBLLZZSZMMNYTPZSXQHJCJYQXYZXZQZCPSHKZZYSXCDFGMWQRLLQXRFZTLYSTCTMJCXJJXHJNXTNRZTZFQYHQGLLGCXSZSJDJLJCYDSJTLNYXHSZXCGJZYQPYLFHDJSBPCCZHJJJQZJQDYBSSLLCMYTTMQTBHJQNNYGKYRQYQMZGCJKPDCGMYZHQLLSLLCLMHOLZGDYYFZSLJCQZLYLZQJESHNYLLJXGJXLYSYYYXNBZLJSSZCQQCJYLLZLTJYLLZLLBNYLGQCHXYYXOXCXQKYJXXXYKLXSXXYQXCYKQXQCSGYXXYQXYGYTQOHXHXPYXXXULCYEYCHZZCBWQBBWJQZSCSZSSLZYLKDESJZWMYMCYTSDSXXSCJPQQSQYLYYZYCMDJDZYWCBTJSYDJKCYDDJLBDJJSODZYSYXQQYXDHHGQQYQHDYXWGMMMAJDYBBBPPBCMUUPLJZSMTXERXJMHQNUTPJDCBSSMSSSTKJTSSMMTRCPLZSZMLQDSDMJMQPNQDXCFYNBFSDQXYXHYAYKQYDDLQYYYSSZBYDSLNTFQTZQPZMCHDHCZCWFDXTMYQSPHQYYXSRGJCWTJTZZQMGWJJTJHTQJBBHWZPXXHYQFXXQYWYYHYSCDYDHHQMNMTMWCPBSZPPZZGLMZFOLLCFWHMMSJZTTDHZZYFFYTZZGZYSKYJXQYJZQBHMBZZLYGHGFMSHPZFZSNCLPBQSNJXZSLXXFPMTYJYGBXLLDLXPZJYZJYHHZCYWHJYLSJEXFSZZYWXKZJLUYDTMLYMQJPWXYHXSKTQJEZRPXXZHHMHWQPWQLYJJQJJZSZCPHJLCHHNXJLQWZJHBMZYXBDHHYPZLHLHLGFWLCHYYTLHJXCJMSCPXSTKPNHQXSRTYXXTESYJCTLSSLSTDLLLWWYHDHRJZSFGXTSYCZYNYHTDHWJSLHTZDQDJZXXQHGYLTZPHCSQFCLNJTCLZPFSTPDYNYLGMJLLYCQHYSSHCHYLHQYQTMZYPBYWRFQYKQSYSLZDQJMPXYYSSRHZJNYWTQDFZBWWTWWRXCWHGYHXMKMYYYQMSMZHNGCEPMLQQMTCWCTMMPXJPJJHFXYYZSXZHTYBMSTSYJTTQQQYYLHYNPYQZLCYZHZWSMYLKFJXLWGXYPJYTYSYXYMZCKTTWLKSMZSYLMPWLZWXWQZSSAQSYXYRHSSNTSRAPXCPWCMGDXHXZDZYFJHGZTTSBJHGYZSZYSMYCLLLXBTYXHBBZJKSSDMALXHYCFYGMQYPJYCQXJLLLJGSLZGQLYCJCCZOTYXMTMTTLLWTGPXYMZMKLPSZZZXHKQYSXCTYJZYHXSHYXZKXLZWPSQPYHJWPJPWXQQYLXSDHMRSLZZYZWTTCYXYSZZSHBSCCSTPLWSSCJCHNLCGCHSSPHYLHFHHXJSXYLLNYLSZDHZXYLSXLWZYKCLDYAXZCMDDYSPJTQJZLNWQPSSSWCTSTSZLBLNXSMNYYMJQBQHRZWTYYDCHQLXKPZWBGQYBKFCMZWPZLLYYLSZYDWHXPSBCMLJBSCGBHXLQHYRLJXYSWXWXZSLDFHLSLYNJLZYFLYJYCDRJLFSYZFSLLCQYQFGJYHYXZLYLMSTDJCYHBZLLNWLXXYGYYHSMGDHXXHHLZZJZXCZZZCYQZFNGWPYLCPKPYYPMCLQKDGXZGGWQBDXZZKZFBXXLZXJTPJPTTBYTSZZDWSLCHZHSLTYXHQLHYXXXYYZYSWTXZKHLXZXZPYHGCHKCFSYHUTJRLXFJXPTZTWHPLYXFCRHXSHXKYXXYHZQDXQWULHYHMJTBFLKHTXCWHJFWJCFPQRYQXCYYYQYGRPYWSGSUNGWCHKZDXYFLXXHJJBYZWTSXXNCYJJYMSWZJQRMHXZWFQSYLZJZGBHYNSLBGTTCSYBYXXWXYHXYYXNSQYXMQYWRGYQLXBBZLJSYLPSYTJZYHYZAWLRORJMKSCZJXXXYXCHDYXRYXXJDTSQFXLYLTSFFYXLMTYJMJUYYYXLTZCSXQZQHZXLYYXZHDNBRXXXJCTYHLBRLMBRLLAXKYLLLJLYXXLYCRYLCJTGJCMTLZLLCYZZPZPCYAWHJJFYBDYYZSMPCKZDQYQPBPCJPDCYZMDPBCYYDYCNNPLMTMLRMFMMGWYZBSJGYGSMZQQQZTXMKQWGXLLPJGZBQCDJJJFPKJKCXBLJMSWMDTQJXLDLPPBXCWRCQFBFQJCZAHZGMYKPHYYHZYKNDKZMBPJYXPXYHLFPNYYGXJDBKXNXHJMZJXSTRSTLDXSKZYSYBZXJLXYSLBZYSLHXJPFXPQNBYLLJQKYGZMCYZZYMCCSLCLHZFWFWYXZMWSXTYNXJHPYYMCYSPMHYSMYDYSHQYZCHMJJMZCAAGCFJBBHPLYZYLXXSDJGXDHKXXTXXNBHRMLYJSLTXMRHNLXQJXYZLLYSWQGDLBJHDCGJYQYCMHWFMJYBMBYJYJWYMDPWHXQLDYGPDFXXBCGJSPCKRSSYZJMSLBZZJFLJJJLGXZGYXYXLSZQYXBEXYXHGCXBPLDYHWETTWWCJMBTXCHXYQXLLXFLYXLLJLSSFWDPZSMYJCLMWYTCZPCHQEKCQBWLCQYDPLQPPQZQFJQDJHYMMCXTXDRMJWRHXCJZYLQXDYYNHYYHRSLSRSYWWZJYMTLTLLGTQCJZYABTCKZCJYCCQLJZQXALMZYHYWLWDXZXQDLLQSHGPJFJLJHJABCQZDJGTKHSSTCYJLPSWZLXZXRWGLDLZRLZXTGSLLLLZLYXXWGDZYGBDPHZPBRLWSXQBPFDWOFMWHLYPCBJCCLDMBZPBZZLCYQXLDOMZBLZWPDWYYGDSTTHCSQSCCRSSSYSLFYBFNTYJSZDFNDPDHDZZMBBLSLCMYFFGTJJQWFTMTPJWFNLBZCMMJTGBDZLQLPYFHYYMJYLSDCHDZJWJCCTLJCLDTLJJCPDDSQDSSZYBNDBJLGGJZXSXNLYCYBJXQYCBYLZCFZPPGKCXZDZFZTJJFJSJXZBNZYJQTTYJYHTYCZHYMDJXTTMPXSPLZCDWSLSHXYPZGTFMLCJTYCBPMGDKWYCYZCDSZZYHFLYCTYGWHKJYYLSJCXGYWJCBLLCSNDDBTZBSCLYZCZZSSQDLLMQYYHFSLQLLXFTYHABXGWNYWYYPLLSDLDLLBJCYXJZMLHLJDXYYQYTDLLLBUGBFDFBBQJZZMDPJHGCLGMJJPGAEHHBWCQXAXHHHZCHXYPHJAXHLPHJPGPZJQCQZGJJZZUZDMQYYBZZPHYHYBWHAZYJHYKFGDPFQSDLZMLJXKXGALXZDAGLMDGXMWZQYXXDXXPFDMMSSYMPFMDMMKXKSYZYSHDZKXSYSMMZZZMSYDNZZCZXFPLSTMZDNMXCKJMZTYYMZMZZMSXHHDCZJEMXXKLJSTLWLSQLYJZLLZJSSDPPMHNLZJCZYHMXXHGZCJMDHXTKGRMXFWMCGMWKDTKSXQMMMFZZYDKMSCLCMPCGMHSPXQPZDSSLCXKYXTWLWJYAHZJGZQMCSNXYYMMPMLKJXMHLMLQMXCTKZMJQYSZJSYSZHSYJZJCDAJZYBSDQJZGWZQQXFKDMSDJLFWEHKZQKJPEYPZYSZCDWYJFFMZZYLTTDZZEFMZLBNPPLPLPEPSZALLTYLKCKQZKGENQLWAGYXYDPXLHSXQQWQCQXQCLHYXXMLYCCWLYMQYSKGCHLCJNSZKPYZKCQZQLJPDMDZHLASXLBYDWQLWDNBQCRYDDZTJYBKBWSZDXDTNPJDTCTQDFXQQMGNXECLTTBKPWSLCTYQLPWYZZKLPYGZCQQPLLKCCYLPQMZCZQCLJSLQZDJXLDDHPZQDLJJXZQDXYZQKZLJCYQDYJPPYPQYKJYRMPCBYMCXKLLZLLFQPYLLLMBSGLCYSSLRSYSQTMXYXZQZFDZUYSYZTFFMZZSMZQHZSSCCMLYXWTPZGXZJGZGSJSGKDDHTQGGZLLBJDZLCBCHYXYZHZFYWXYZYMSDBZZYJGTSMTFXQYXQSTDGSLNXDLRYZZLRYYLXQHTXSRTZNGZXBNQQZFMYKMZJBZYMKBPNLYZPBLMCNQYZZZSJZHJCTZKHYZZJRDYZHNPXGLFZTLKGJTCTSSYLLGZRZBBQZZKLPKLCZYSSUYXBJFPNJZZXCDWXZYJXZZDJJKGGRSRJKMSMZJLSJYWQSKYHQJSXPJZZZLSNSHRNYPZTWCHKLPSRZLZXYJQXQKYSJYCZTLQZYBBYBWZPQDWWYZCYTJCJXCKCWDKKZXSGKDZXWWYYJQYYTCYTDLLXWKCZKKLCCLZCQQDZLQLCSFQCHQHSFSMQZZLNBJJZBSJHTSZDYSJQJPDLZCDCWJKJZZLPYCGMZWDJJBSJQZSYZYHHXJPBJYDSSXDZNCGLQMBTSFSBPDZDLZNFGFJGFSMPXJQLMBLGQCYYXBQKDJJQYRFKZTJDHCZKLBSDZCFJTPLLJGXHYXZCSSZZXSTJYGKGCKGYOQXJPLZPBPGTGYJZGHZQZZLBJLSQFZGKQQJZGYCZBZQTLDXRJXBSXXPZXHYZYCLWDXJJHXMFDZPFZHQHQMQGKSLYHTYCGFRZGNQXCLPDLBZCSCZQLLJBLHBZCYPZZPPDYMZZSGYHCKCPZJGSLJLNSCDSLDLXBMSTLDDFJMKDJDHZLZXLSZQPQPGJLLYBDSZGQLBZLSLKYYHZTTNTJYQTZZPSZQZTLLJTYYLLQLLQYZQLBDZLSLYYZYMDFSZSNHLXZNCZQZPBWSKRFBSYZMTHBLGJPMCZZLSTLXSHTCSYZLZBLFEQHLXFLCJLYLJQCBZLZJHHSSTBRMHXZHJZCLXFNBGXGTQJCZTMSFZKJMSSNXLJKBHSJXNTNLZDNTLMSJXGZJYJCZXYJYJWRWWQNZTNFJSZPZSHZJFYRDJSFSZJZBJFZQZZHZLXFYSBZQLZSGYFTZDCSZXZJBQMSZKJRHYJZCKMJKHCHGTXKXQGLXPXFXTRTYLXJXHDTSJXHJZJXZWZLCQSBTXWXGXTXXHXFTSDKFJHZYJFJXRZSDLLLTQSQQZQWZXSYQTWGWBZCGZLLYZBCLMQQTZHZXZXLJFRMYZFLXYSQXXJKXRMQDZDMMYYBSQBHGZMWFWXGMXLZPYYTGZYCCDXYZXYWGSYJYZNBHPZJSQSYXSXRTFYZGRHZTXSZZTHCBFCLSYXZLZQMZLMPLMXZJXSFLBYZMYQHXJSXRXSQZZZSSLYFRCZJRCRXHHZXQYDYHXSJJHZCXZBTYNSYSXJBQLPXZQPYMLXZKYXLXCJLCYSXXZZLXDLLLJJYHZXGYJWKJRWYHCPSGNRZLFZWFZZNSXGXFLZSXZZZBFCSYJDBRJKRDHHGXJLJJTGXJXXSTJTJXLYXQFCSGSWMSBCTLQZZWLZZKXJMLTMJYHSDDBXGZHDLBMYJFRZFSGCLYJBPMLYSMSXLSZJQQHJZFXGFQFQBPXZGYYQXGZTCQWYLTLGWSGWHRLFSFGZJMGMGBGTJFSYZZGZYZAFLSSPMLPFLCWBJZCLJJMZLPJJLYMQDMYYYFBGYGYZMLYZDXQYXRQQQHSYYYQXYLJTYXFSFSLLGNQCYHYCWFHCCCFXPYLYPLLZYXXXXXKQHHXSHJZCFZSCZJXCPZWHHHHHAPYLQALPQAFYHXDYLUKMZQGGGDDESRNNZLTZGCHYPPYSQJJHCLLJTOLNJPZLJLHYMHEYDYDSQYCDDHGZUNDZCLZYZLLZNTNYZGSLHSLPJJBDGWXPCDUTJCKLKCLWKLLCASSTKZZDNQNTTLYYZSSYSSZZRYLJQKCQDHHCRXRZYDGRGCWCGZQFFFPPJFZYNAKRGYWYQPQXXFKJTSZZXSWZDDFBBXTBGTZKZNPZZPZXZPJSZBMQHKCYXYLDKLJNYPKYGHGDZJXXEAHPNZKZTZCMXCXMMJXNKSZQNMNLWBWWXJKYHCPSTMCSQTZJYXTPCTPDTNNPGLLLZSJLSPBLPLQHDTNJNLYYRSZFFJFQWDPHZDWMRZCCLODAXNSSNYZRESTYJWJYJDBCFXNMWTTBYLWSTSZGYBLJPXGLBOCLHPCBJLTMXZLJYLZXCLTPNCLCKXTPZJSWCYXSFYSZDKNTLBYJCYJLLSTGQCBXRYZXBXKLYLHZLQZLNZCXWJZLJZJNCJHXMNZZGJZZXTZJXYCYYCXXJYYXJJXSSSJSTSSTTPPGQTCSXWZDCSYFPTFBFHFBBLZJCLZZDBXGCXLQPXKFZFLSYLTUWBMQJHSZBMDDBCYSCCLDXYCDDQLYJJWMQLLCSGLJJSYFPYYCCYLTJANTJJPWYCMMGQYYSXDXQMZHSZXPFTWWZQSWQRFKJLZJQQYFBRXJHHFWJJZYQAZMYFRHCYYBYQWLPEXCCZSTYRLTTDMQLYKMBBGMYYJPRKZNPBSXYXBHYZDJDNGHPMFSGMWFZMFQMMBCMZZCJJLCNUXYQLMLRYGQZCYXZLWJGCJCGGMCJNFYZZJHYCPRRCMTZQZXHFQGTJXCCJEAQCRJYHPLQLSZDJRBCQHQDYRHYLYXJSYMHZYDWLDFRYHBPYDTSSCNWBXGLPZMLZZTQSSCPJMXXYCSJYTYCGHYCJWYRXXLFEMWJNMKLLSWTXHYYYNCMMCWJDQDJZGLLJWJRKHPZGGFLCCSCZMCBLTBHBQJXQDSPDJZZGKGLFQYWBZYZJLTSTDHQHCTCBCHFLQMPWDSHYYTQWCNZZJTLBYMBPDYYYXSQKXWYYFLXXNCWCXYPMAELYKKJMZZZBRXYYQJFLJPFHHHYTZZXSGQQMHSPGDZQWBWPJHZJDYSCQWZKTXXSQLZYYMYSDZGRXCKKUJLWPYSYSCSYZLRMLQSYLJXBCXTLWDQZPCYCYKPPPNSXFYZJJRCEMHSZMSXLXGLRWGCSTLRSXBZGBZGZTCPLUJLSLYLYMTXMTZPALZXPXJTJWTCYYZLBLXBZLQMYLXPGHDSLSSDMXMBDZZSXWHAMLCZCPJMCNHJYSNSYGCHSKQMZZQDLLKABLWJXSFMOCDXJRRLYQZKJMYBYQLYHETFJZFRFKSRYXFJTWDSXXSYSQJYSLYXWJHSNLXYYXHBHAWHHJZXWMYLJCSSLKYDZTXBZSYFDXGXZJKHSXXYBSSXDPYNZWRPTQZCZENYGCXQFJYKJBZMLJCMQQXUOXSLYXXLYLLJDZBTYMHPFSTTQQWLHOKYBLZZALZXQLHZWRRQHLSTMYPYXJJXMQSJFNBXYXYJXXYQYLTHYLQYFMLKLJTMLLHSZWKZHLJMLHLJKLJSTLQXYLMBHHLNLZXQJHXCFXXLHYHJJGBYZZKBXSCQDJQDSUJZYYHZHHMGSXCSYMXFEBCQWWRBPYYJQTYZCYQYQQZYHMWFFHGZFRJFCDPXNTQYZPDYKHJLFRZXPPXZDBBGZQSTLGDGYLCQMLCHHMFYWLZYXKJLYPQHSYWMQQGQZMLZJNSQXJQSYJYCBEHSXFSZPXZWFLLBCYYJDYTDTHWZSFJMQQYJLMQXXLLDTTKHHYBFPWTYYSQQWNQWLGWDEBZWCMYGCULKJXTMXMYJSXHYBRWFYMWFRXYQMXYSZTZZTFYKMLDHQDXWYYNLCRYJBLPSXCXYWLSPRRJWXHQYPHTYDNXHHMMYWYTZCSQMTSSCCDALWZTCPQPYJLLQZYJSWXMZZMMYLMXCLMXCZMXMZSQTZPPQQBLPGXQZHFLJJHYTJSRXWZXSCCDLXTYJDCQJXSLQYCLZXLZZXMXQRJMHRHZJBHMFLJLMLCLQNLDXZLLLPYPSYJYSXCQQDCMQJZZXHNPNXZMEKMXHYKYQLXSXTXJYYHWDCWDZHQYYBGYBCYSCFGPSJNZDYZZJZXRZRQJJYMCANYRJTLDPPYZBSTJKXXZYPFDWFGZZRPYMTNGXZQBYXNBUFNQKRJQZMJEGRZGYCLKXZDSKKNSXKCLJSPJYYZLQQJYBZSSQLLLKJXTBKTYLCCDDBLSPPFYLGYDTZJYQGGKQTTFZXBDKTYYHYBBFYTYYBCLPDYTGDHRYRNJSPTCSNYJQHKLLLZSLYDXXWBCJQSPXBPJZJCJDZFFXXBRMLAZHCSNDLBJDSZBLPRZTSWSBXBCLLXXLZDJZSJPYLYXXYFTFFFBHJJXGBYXJPMMMPSSJZJMTLYZJXSWXTYLEDQPJMYGQZJGDJLQJWJQLLSJGJGYGMSCLJJXDTYGJQJQJCJZCJGDZZSXQGSJGGCXHQXSNQLZZBXHSGZXCXYLJXYXYYDFQQJHJFXDHCTXJYRXYSQTJXYEFYYSSYYJXNCYZXFXMSYSZXYYSCHSHXZZZGZZZGFJDLTYLNPZGYJYZYYQZPBXQBDZTZCZYXXYHHSQXSHDHGQHJHGYWSZTMZMLHYXGEBTYLZKQWYTJZRCLEKYSTDBCYKQQSAYXCJXWWGSBHJYZYDHCSJKQCXSWXFLTYNYZPZCCZJQTZWJQDZZZQZLJJXLSBHPYXXPSXSHHEZTXFPTLQYZZXHYTXNCFZYYHXGNXMYWXTZSJPTHHGYMXMXQZXTSBCZYJYXXTYYZYPCQLMMSZMJZZLLZXGXZAAJZYXJMZXWDXZSXZDZXLEYJJZQBHZWZZZQTZPSXZTDSXJJJZNYAZPHXYYSRNQDTHZHYYKYJHDZXZLSWCLYBZYECWCYCRYLCXNHZYDZYDYJDFRJJHTRSQTXYXJRJHOJYNXELXSFSFJZGHPZSXZSZDZCQZBYYKLSGSJHCZSHDGQGXYZGXCHXZJWYQWGYHKSSEQZZNDZFKWYSSTCLZSTSYMCDHJXXYWEYXCZAYDMPXMDSXYBSQMJMZJMTZQLPJYQZCGQHXJHHLXXHLHDLDJQCLDWBSXFZZYYSCHTYTYYBHECXHYKGJPXHHYZJFXHWHBDZFYZBCAPNPGNYDMSXHMMMMAMYNBYJTMPXYYMCTHJBZYFCGTYHWPHFTWZZEZSBZEGPFMTSKFTYCMHFLLHGPZJXZJGZJYXZSBBQSCZZLZCCSTPGXMJSFTCCZJZDJXCYBZLFCJSYZFGSZLYBCWZZBYZDZYPSWYJZXZBDSYUXLZZBZFYGCZXBZHZFTPBGZGEJBSTGKDMFHYZZJHZLLZZGJQZLSFDJSSCBZGPDLFZFZSZYZYZSYGCXSNXXCHCZXTZZLJFZGQSQYXZJQDCCZTQCDXZJYQJQCHXZTDLGSCXZSYQJQTZWLQDQZTQCHQQJZYEZZZPBWKDJFCJPZTYPQYQTTYNLMBDKTJZPQZQZZFPZSBNJLGYJDXJDZZKZGQKXDLPZJTCJDQBXDJQJSTCKNXBXZMSLYJCQMTJQWWCJQNJNLLLHJCWQTBZQYDZCZPZZDZYDDCYZZZCCJTTJFZDPRRTZTJDCQTQZDTJNPLZBCLLCTZSXKJZQZPZLBZRBTJDCXFCZDBCCJJLTQQPLDCGZDBBZJCQDCJWYNLLZYZCCDWLLXWZLXRXNTQQCZXKQLSGDFQTDDGLRLAJJTKUYMKQLLTZYTDYYCZGJWYXDXFRSKSTQTENQMRKQZHHQKDLDAZFKYPBGGPZREBZZYKZZSPEGJXGYKQZZZSLYSYYYZWFQZYLZZLZHWCHKYPQGNPGBLPLRRJYXCCSYYHSFZFYBZYYTGZXYLXCZWXXZJZBLFFLGSKHYJZEYJHLPLLLLCZGXDRZELRHGKLZZYHZLYQSZZJZQLJZFLNBHGWLCZCFJYSPYXZLZLXGCCPZBLLCYBBBBUBBCBPCRNNZCZYRBFSRLDCGQYYQXYGMQZWTZYTYJXYFWTEHZZJYWLCCNTZYJJZDEDPZDZTSYQJHDYMBJNYJZLXTSSTPHNDJXXBYXQTZQDDTJTDYYTGWSCSZQFLSHLGLBCZPHDLYZJYCKWTYTYLBNYTSDSYCCTYSZYYEBHEXHQDTWNYGYCLXTSZYSTQMYGZAZCCSZZDSLZCLZRQXYYELJSBYMXSXZTEMBBLLYYLLYTDQYSHYMRQWKFKBFXNXSBYCHXBWJYHTQBPBSBWDZYLKGZSKYHXQZJXHXJXGNLJKZLYYCDXLFYFGHLJGJYBXQLYBXQPQGZTZPLNCYPXDJYQYDYMRBESJYYHKXXSTMXRCZZYWXYQYBMCLLYZHQYZWQXDBXBZWZMSLPDMYSKFMZKLZCYQYCZLQXFZZYDQZPZYGYJYZMZXDZFYFYTTQTZHGSPCZMLCCYTZXJCYTJMKSLPZHYSNZLLYTPZCTZZCKTXDHXXTQCYFKSMQCCYYAZHTJPCYLZLYJBJXTPNYLJYYNRXSYLMMNXJSMYBCSYSYLZYLXJJQYLDZLPQBFZZBLFNDXQKCZFYWHGQMRDSXYCYTXNQQJZYYPFZXDYZFPRXEJDGYQBXRCNFYYQPGHYJDYZXGRHTKYLNWDZNTSMPKLBTHBPYSZBZTJZSZZJTYYXZPHSSZZBZCZPTQFZMYFLYPYBBJQXZMXXDJMTSYSKKBJZXHJCKLPSMKYJZCXTMLJYXRZZQSLXXQPYZXMKYXXXJCLJPRMYYGADYSKQLSNDHYZKQXZYZTCGHZTLMLWZYBWSYCTBHJHJFCWZTXWYTKZLXQSHLYJZJXTMPLPYCGLTBZZTLZJCYJGDTCLKLPLLQPJMZPAPXYZLKKTKDZCZZBNZDYDYQZJYJGMCTXLTGXSZLMLHBGLKFWNWZHDXUHLFMKYSLGXDTWWFRJEJZTZHYDXYKSHWFZCQSHKTMQQHTZHYMJDJSKHXZJZBZZXYMPAGQMSTPXLSKLZYNWRTSQLSZBPSPSGZWYHTLKSSSWHZZLYYTNXJGMJSZSUFWNLSOZTXGXLSAMMLBWLDSZYLAKQCQCTMYCFJBSLXCLZZCLXXKSBZQCLHJPSQPLSXXCKSLNHPSFQQYTXYJZLQLDXZQJZDYYDJNZPTUZDSKJFSLJHYLZSQZLBTXYDGTQFDBYAZXDZHZJNHHQBYKNXJJQCZMLLJZKSPLDYCLBBLXKLELXJLBQYCXJXGCNLCQPLZLZYJTZLJGYZDZPLTQCSXFDMNYCXGBTJDCZNBGBQYQJWGKFHTNPYQZQGBKPBBYZMTJDYTBLSQMPSXTBNPDXKLEMYYCJYNZCTLDYKZZXDDXHQSHDGMZSJYCCTAYRZLPYLTLKXSLZCGGEXCLFXLKJRTLQJAQZNCMBYDKKCXGLCZJZXJHPTDJJMZQYKQSECQZDSHHADMLZFMMZBGNTJNNLGBYJBRBTMLBYJDZXLCJLPLDLPCQDHLXZLYCBLCXZZJADJLNZMMSSSMYBHBSQKBHRSXXJMXSDZNZPXLGBRHWGGFCXGMSKLLTSJYYCQLTSKYWYYHYWXBXQYWPYWYKQLSQPTNTKHQCWDQKTWPXXHCPTHTWUMSSYHBWCRWXHJMKMZNGWTMLKFGHKJYLSYYCXWHYECLQHKQHTTQKHFZLDXQWYZYYDESBPKYRZPJFYYZJCEQDZZDLATZBBFJLLCXDLMJSSXEGYGSJQXCWBXSSZPDYZCXDNYXPPZYDLYJCZPLTXLSXYZYRXCYYYDYLWWNZSAHJSYQYHGYWWAXTJZDAXYSRLTDPSSYYFNEJDXYZHLXLLLZQZSJNYQYQQXYJGHZGZCYJCHZLYCDSHWSHJZYJXCLLNXZJJYYXNFXMWFPYLCYLLABWDDHWDXJMCXZTZPMLQZHSFHZYNZTLLDYWLSLXHYMMYLMBWWKYXYADTXYLLDJPYBPWUXJMWMLLSAFDLLYFLBHHHBQQLTZJCQJLDJTFFKMMMBYTHYGDCQRDDWRQJXNBYSNWZDBYYTBJHPYBYTTJXAAHGQDQTMYSTQXKBTZPKJLZRBEQQSSMJJBDJOTGTBXPGBKTLHQXJJJCTHXQDWJLWRFWQGWSHCKRYSWGFTGYGBXSDWDWRFHWYTJJXXXJYZYSLPYYYPAYXHYDQKXSHXYXGSKQHYWFDDDPPLCJLQQEEWXKSYYKDYPLTJTHKJLTCYYHHJTTPLTZZCDLTHQKZXQYSTEEYWYYZYXXYYSTTJKLLPZMCYHQGXYHSRMBXPLLNQYDQHXSXXWGDQBSHYLLPJJJTHYJKYPPTHYYKTYEZYENMDSHLCRPQFDGFXZPSFTLJXXJBSWYYSKSFLXLPPLBBBLBSFXFYZBSJSSYLPBBFFFFSSCJDSTZSXZRYYSYFFSYZYZBJTBCTSBSDHRTJJBYTCXYJEYLXCBNEBJDSYXYKGSJZBXBYTFZWGENYHHTHZHHXFWGCSTBGXKLSXYWMTMBYXJSTZSCDYQRCYTWXZFHMYMCXLZNSDJTTTXRYCFYJSBSDYERXJLJXBBDEYNJGHXGCKGSCYMBLXJMSZNSKGXFBNBPTHFJAAFXYXFPXMYPQDTZCXZZPXRSYWZDLYBBKTYQPQJPZYPZJZNJPZJLZZFYSBTTSLMPTZRTDXQSJEHBZYLZDHLJSQMLHTXTJECXSLZZSPKTLZKQQYFSYGYWPCPQFHQHYTQXZKRSGTTSQCZLPTXCDYYZXSQZSLXLZMYCPCQBZYXHBSXLZDLTCDXTYLZJYYZPZYZLTXJSJXHLPMYTXCQRBLZSSFJZZTNJYTXMYJHLHPPLCYXQJQQKZZSCPZKSWALQSBLCCZJSXGWWWYGYKTJBBZTDKHXHKGTGPBKQYSLPXPJCKBMLLXDZSTBKLGGQKQLSBKKTFXRMDKBFTPZFRTBBRFERQGXYJPZSSTLBZTPSZQZSJDHLJQLZBPMSMMSXLQQNHKNBLRDDNXXDHDDJCYYGYLXGZLXSYGMQQGKHBPMXYXLYTQWLWGCPBMQXCYZYDRJBHTDJYHQSHTMJSBYPLWHLZFFNYPMHXXHPLTBQPFBJWQDBYGPNZTPFZJGSDDTQSHZEAWZZYLLTYYBWJKXXGHLFKXDJTMSZSQYNZGGSWQSPHTLSSKMCLZXYSZQZXNCJDQGZDLFNYKLJCJLLZLMZZNHYDSSHTHZZLZZBBHQZWWYCRZHLYQQJBEYFXXXWHSRXWQHWPSLMSSKZTTYGYQQWRSLALHMJTQJSMXQBJJZJXZYZKXBYQXBJXSHZTSFJLXMXZXFGHKZSZGGYLCLSARJYHSLLLMZXELGLXYDJYTLFBHBPNLYZFBBHPTGJKWETZHKJJXZXXGLLJLSTGSHJJYQLQZFKCGNNDJSSZFDBCTWWSEQFHQJBSAQTGYPQLBXBMMYWXGSLZHGLZGQYFLZBYFZJFRYSFMBYZHQGFWZSYFYJJPHZBYYZFFWODGRLMFTWLBZGYCQXCDJYGZYYYYTYTYDWEGAZYHXJLZYYHLRMGRXXZCLHNELJJTJTPWJYBJJBXJJTJTEEKHWSLJPLPSFYZPQQBDLQJJTYYQLYZKDKSQJYYQZLDQTGJQYZJSUCMRYQTHTEJMFCTYHYPKMHYZWJDQFHYYXWSHCTXRLJHQXHCCYYYJLTKTTYTMXGTCJTZAYYOCZLYLBSZYWJYTSJYHBYSHFJLYGJXXTMZYYLTXXYPZLXYJZYZYYPNHMYMDYYLBLHLSYYQQLLNJJYMSOYQBZGDLYXYLCQYXTSZEGXHZGLHWBLJHEYXTWQMAKBPQCGYSHHEGQCMWYYWLJYJHYYZLLJJYLHZYHMGSLJLJXCJJYCLYCJPCPZJZJMMYLCQLNQLJQJSXYJMLSZLJQLYCMMHCFMMFPQQMFYLQMCFFQMMMMHMZNFHHJGTTHHKHSLNCHHYQDXTMMQDCYZYXYQMYQYLTDCYYYZAZZCYMZYDLZFFFMMYCQZWZZMABTBYZTDMNZZGGDFTYPCGQYTTSSFFWFDTZQSSYSTWXJHXYTSXXYLBYQHWWKXHZXWZNNZZJZJJQJCCCHYYXBZXZCYZTLLCQXYNJYCYYCYNZZQYYYEWYCZDCJYCCHYJLBTZYYCQWMPWPYMLGKDLDLGKQQBGYCHJXY";
        //此处收录了375个多音字,数据来自于http://www.51window.net/page/pinyin
        var oMultiDiff = { "19969": "DZ", "19975": "WM", "19988": "QJ", "20048": "YL", "20056": "SC", "20060": "NM", "20094": "QG", "20127": "QJ", "20167": "QC", "20193": "YG", "20250": "KH", "20256": "ZC", "20282": "SC", "20285": "QJG", "20291": "TD", "20314": "YD", "20340": "NE", "20375": "TD", "20389": "YJ", "20391": "CZ", "20415": "PB", "20446": "YS", "20447": "SQ", "20504": "TC", "20608": "KG", "20854": "QJ", "20857": "ZC", "20911": "PF", "20504": "TC", "20608": "KG", "20854": "QJ", "20857": "ZC", "20911": "PF", "20985": "AW", "21032": "PB", "21048": "XQ", "21049": "SC", "21089": "YS", "21119": "JC", "21242": "SB", "21273": "SC", "21305": "YP", "21306": "QO", "21330": "ZC", "21333": "SDC", "21345": "QK", "21378": "CA", "21397": "SC", "21414": "XS", "21442": "SC", "21477": "JG", "21480": "TD", "21484": "ZS", "21494": "YX", "21505": "YX", "21512": "HG", "21523": "XH", "21537": "PB", "21542": "PF", "21549": "KH", "21571": "E", "21574": "DA", "21588": "TD", "21589": "O", "21618": "ZC", "21621": "KHA", "21632": "ZJ", "21654": "KG", "21679": "LKG", "21683": "KH", "21710": "A", "21719": "YH", "21734": "WOE", "21769": "A", "21780": "WN", "21804": "XH", "21834": "A", "21899": "ZD", "21903": "RN", "21908": "WO", "21939": "ZC", "21956": "SA", "21964": "YA", "21970": "TD", "22003": "A", "22031": "JG", "22040": "XS", "22060": "ZC", "22066": "ZC", "22079": "MH", "22129": "XJ", "22179": "XA", "22237": "NJ", "22244": "TD", "22280": "JQ", "22300": "YH", "22313": "XW", "22331": "YQ", "22343": "YJ", "22351": "PH", "22395": "DC", "22412": "TD", "22484": "PB", "22500": "PB", "22534": "ZD", "22549": "DH", "22561": "PB", "22612": "TD", "22771": "KQ", "22831": "HB", "22841": "JG", "22855": "QJ", "22865": "XQ", "23013": "ML", "23081": "WM", "23487": "SX", "23558": "QJ", "23561": "YW", "23586": "YW", "23614": "YW", "23615": "SN", "23631": "PB", "23646": "ZS", "23663": "ZT", "23673": "YG", "23762": "TD", "23769": "ZS", "23780": "QJ", "23884": "QK", "24055": "XH", "24113": "DC", "24162": "ZC", "24191": "GA", "24273": "QJ", "24324": "NL", "24377": "TD", "24378": "QJ", "24439": "PF", "24554": "ZS", "24683": "TD", "24694": "WE", "24733": "LK", "24925": "TN", "25094": "ZG", "25100": "XQ", "25103": "XH", "25153": "PB", "25170": "PB", "25179": "KG", "25203": "PB", "25240": "ZS", "25282": "FB", "25303": "NA", "25324": "KG", "25341": "ZY", "25373": "WZ", "25375": "XJ", "25384": "A", "25457": "A", "25528": "SD", "25530": "SC", "25552": "TD", "25774": "ZC", "25874": "ZC", "26044": "YW", "26080": "WM", "26292": "PB", "26333": "PB", "26355": "ZY", "26366": "CZ", "26397": "ZC", "26399": "QJ", "26415": "ZS", "26451": "SB", "26526": "ZC", "26552": "JG", "26561": "TD", "26588": "JG", "26597": "CZ", "26629": "ZS", "26638": "YL", "26646": "XQ", "26653": "KG", "26657": "XJ", "26727": "HG", "26894": "ZC", "26937": "ZS", "26946": "ZC", "26999": "KJ", "27099": "KJ", "27449": "YQ", "27481": "XS", "27542": "ZS", "27663": "ZS", "27748": "TS", "27784": "SC", "27788": "ZD", "27795": "TD", "27812": "O", "27850": "PB", "27852": "MB", "27895": "SL", "27898": "PL", "27973": "QJ", "27981": "KH", "27986": "HX", "27994": "XJ", "28044": "YC", "28065": "WG", "28177": "SM", "28267": "QJ", "28291": "KH", "28337": "ZQ", "28463": "TL", "28548": "DC", "28601": "TD", "28689": "PB", "28805": "JG", "28820": "QG", "28846": "PB", "28952": "TD", "28975": "ZC", "29100": "A", "29325": "QJ", "29575": "SL", "29602": "FB", "30010": "TD", "30044": "CX", "30058": "PF", "30091": "YSP", "30111": "YN", "30229": "XJ", "30427": "SC", "30465": "SX", "30631": "YQ", "30655": "QJ", "30684": "QJG", "30707": "SD", "30729": "XH", "30796": "LG", "30917": "PB", "31074": "NM", "31085": "JZ", "31109": "SC", "31181": "ZC", "31192": "MLB", "31293": "JQ", "31400": "YX", "31584": "YJ", "31896": "ZN", "31909": "ZY", "31995": "XJ", "32321": "PF", "32327": "ZY", "32418": "HG", "32420": "XQ", "32421": "HG", "32438": "LG", "32473": "GJ", "32488": "TD", "32521": "QJ", "32527": "PB", "32562": "ZSQ", "32564": "JZ", "32735": "ZD", "32793": "PB", "33071": "PF", "33098": "XL", "33100": "YA", "33152": "PB", "33261": "CX", "33324": "BP", "33333": "TD", "33406": "YA", "33426": "WM", "33432": "PB", "33445": "JG", "33486": "ZN", "33493": "TS", "33507": "QJ", "33540": "QJ", "33544": "ZC", "33564": "XQ", "33617": "YT", "33632": "QJ", "33636": "XH", "33637": "YX", "33694": "WG", "33705": "PF", "33728": "YW", "33882": "SR", "34067": "WM", "34074": "YW", "34121": "QJ", "34255": "ZC", "34259": "XL", "34425": "JH", "34430": "XH", "34485": "KH", "34503": "YS", "34532": "HG", "34552": "XS", "34558": "YE", "34593": "ZL", "34660": "YQ", "34892": "XH", "34928": "SC", "34999": "QJ", "35048": "PB", "35059": "SC", "35098": "ZC", "35203": "TQ", "35265": "JX", "35299": "JX", "35782": "SZ", "35828": "YS", "35830": "E", "35843": "TD", "35895": "YG", "35977": "MH", "36158": "JG", "36228": "QJ", "36426": "XQ", "36466": "DC", "36710": "JC", "36711": "ZYG", "36767": "PB", "36866": "SK", "36951": "YW", "37034": "YX", "37063": "XH", "37218": "ZC", "37325": "ZC", "38063": "PB", "38079": "TD", "38085": "QY", "38107": "DC", "38116": "TD", "38123": "YD", "38224": "HG", "38241": "XTC", "38271": "ZC", "38415": "YE", "38426": "KH", "38461": "YD", "38463": "AE", "38466": "PB", "38477": "XJ", "38518": "YT", "38551": "WK", "38585": "ZC", "38704": "XS", "38739": "LJ", "38761": "GJ", "38808": "SQ", "39048": "JG", "39049": "XJ", "39052": "HG", "39076": "CZ", "39271": "XT", "39534": "TD", "39552": "TD", "39584": "PB", "39647": "SB", "39730": "LG", "39748": "TPB", "40109": "ZQ", "40479": "ND", "40516": "HG", "40536": "HG", "40583": "QJ", "40765": "YQ", "40784": "QJ", "40840": "YK", "40863": "QJG" };
        //参数,中文字符串
        //返回值:拼音首字母串数组
        function makePy(str) {
            //var str = document.getElementById("text").value;
            if (typeof (str) != "string") {
                throw new Error(-1, "\u51fd\u6570makePy\u9700\u8981\u5b57\u7b26\u4e32\u7c7b\u578b\u53c2\u6570!");
            }
            var arrResult = new Array(); //保存中间结果的数组
            for (var i = 0, len = str.length; i < len; i++) {
                //获得unicode码
                var ch = str.charAt(i);
                //检查该unicode码是否在处理范围之内,在则返回该码对映汉字的拼音首字母,不在则调用其它函数处理
                arrResult.push(checkCh(ch));
            }
            //处理arrResult,返回所有可能的拼音首字母串数组
            //document.getElementById("text_value").innerHTML = mkRslt(arrResult)
            return mkRslt(arrResult)[0].replace(/、/g, "").replace("(", "").replace(")", "");//多音字取第一种

        }

        function checkCh(ch) {
            var uni = ch.charCodeAt(0);
            //如果不在汉字处理范围之内,返回原字符,也可以调用自己的处理函数
            if (uni > 40869 || uni < 19968) {
                return ch;
            } //dealWithOthers(ch);
            //检查是否是多音字,是按多音字处理,不是就直接在strChineseFirstPY字符串中找对应的首字母
            return (oMultiDiff[uni] ? oMultiDiff[uni] : (strChineseFirstPY.charAt(uni - 19968)));
        }

        function mkRslt(arr) {
            //debugger;
            var arrRslt = [""];
            for (var i = 0, len = arr.length; i < len; i++) {
                var str = arr[i];
                var strlen = str.length;
                if (strlen == 1) {
                    for (var k = 0; k < arrRslt.length; k++) {
                        arrRslt[k] += str;
                        console.log(str)
                    }
                } else {
                    var tmpArr = arrRslt.slice(0);
                    arrRslt = [];
                    for (k = 0; k < strlen; k++) {
                        //复制一个相同的arrRslt
                        var tmp = tmpArr.slice(0);
                        //把当前字符str[k]添加到每个元素末尾
                        for (var j = 0; j < tmp.length; j++) {
                            tmp[j] += str.charAt(k);
                        }
                        //把复制并修改后的数组连接到arrRslt上
                        arrRslt = arrRslt.concat(tmp);
                    }
                }
            }
            return arrRslt;
        }
    </script>
    <style type="text/css">
        body {
            margin: 0;
            padding: 0;
        }

        /*        body {
            width: 100%;
            margin: 0;
            padding: 15px;
        }

        #box {
            width: 90%;
        }*/
    </style>
</head>
<body>
    <div id="box">
        <div class="btns-tools">
            <button id="btnCreateTable">生成表模板</button>
            <button id="btnCreateHtml">生成Html</button>
        </div>
        <div>表前缀(Name) <input type="text" id="txtTableNameQZ" value="农业" /> 表前缀(Code)<input type="text" id="txtTableQZ" value="SN_ADM_NY" /> </div>
        <textarea id="txtJson" rows="10" cols="20" style="width:99%"></textarea>
        <div>
            <span style="display:inline-block;width:10%;vertical-align:top;text-align:center;padding-top:10px">排除的字段(主表)</span><textarea id="txtRemoveCol" rows="2" cols="20" style="width:89%"></textarea>
        </div>
        <div>
            <span style="display:inline-block;width:10%;vertical-align:top;text-align:center;">预留字段(主表)</span><textarea id="txtCols" rows="2" cols="20" style="width:89%"></textarea>
        </div>
        <div>
            <span style="display: inline-block; width: 10%; vertical-align: top; text-align: center; padding-top: 10px;">参考字段(测试用例)</span>
            <div style="display:inline-block;width:200px">
                <textarea id="txtTestCaseCol" rows="1" style="width:180px"></textarea>
                <button id="btnCreateTestCaseSql">生成测试用例Sql</button>
            </div>
            <div style="display:inline-block;width:324px">
                <div>
                    <span style="display:inline-block;width:120px">人员默认值</span>
                    <textarea id="txtPCode" rows="1" style="width:60px"></textarea>
                    <textarea id="txtPName" rows="1" style="width:110px"></textarea>
                </div>
                <div>
                    <span style="display:inline-block;width:120px">组织架构默认值</span>
                    <textarea id="txtDCode" rows="1" style="width:60px"></textarea>
                    <textarea id="txtDName" rows="1" style="width:110px"></textarea>
                </div>
            </div>
            <textarea id="txtTestCaseSql" rows="2" cols="20" style="width:61%"></textarea>
        </div>
        <div id="sheetBox">

        </div>
        <textarea id="pageConten" rows="25" cols="20" style="width:99%"></textarea>
    </div>
    <div id="tt" style="display:none">

        <div class="XDataBrowserButton-tt">
            <div class="xbb-空">
                <aspxform:XDataBrowserButton id="XDataBrowserButton{{code}}" runat="server" Text="…" DisableExpress='!(Global.StepName=="开始")' XDataSource="L" DisplayColumns=""></aspxform:XDataBrowserButton>
            </div>
            <div class="xbb-印章选择 xbb-所用印章名称 xbb-印章名称 xbb-印章">
                <aspxform:XDataBrowserButton id="XDataBrowserButton{{code}}" runat="server" Text="…" DisableExpress='!(Global.StepName=="开始")' XDataSource="TableName:SN_PUB_THESEAL" DisplayColumns="Name:印章名称,300;Bak:备注,300;Status:印章状态,100;Registrant:登记人,100;RegistrationAuth:登记部门,100;RecordDate:登记日期,200;Modifier:修改人,100;BelongUnit:归属单位,100;RoleSYS:印章角色体系,300;Type:印章类型,100;HandleType:办理类型,100;EngraveDate:刻制日期,200;IFChapterGroup:是否集团章,100;Manager:印章管理员,100;ManagerSUP:印章管理员上级,150;DepartmentManager:印章部门负责人,150" DataMap="Name->{{tableCode}}.{{code}};RoleSYS->{{dataMap0}};RoleDeptCode->{{dataMap1}}"></aspxform:XDataBrowserButton>
            </div>
            <div class="xbb-印章全称">
                <aspxform:XDataBrowserButton id="XDataBrowserButton{{code}}" runat="server" Text="…" DisableExpress='Global.StepName!="开始"' DisplayColumns="Name:印章名称,300;Bak:备注,300;Status:印章状态,100;Registrant:登记人,100;RegistrationAuth:登记部门,100;RecordDate:登记日期,200;Modifier:修改人,200;BelongUnit:归属单位,100;RoleSYS:印章角色体系,200;Type:印章类型,100;HandleType:办理类型,100;EngraveDate:刻制日期,200;IFChapterGroup:是否集团章,100;Manager:印章管理员,100;ManagerSUP:印章管理员上级,100;DepartmentManager:印章部门负责人,100" DataMap="Name->{{tableCode}}.{{code}};RoleDeptCode->{{dataMap0}}" XDataSource="TableName:SN_PUB_THESEAL"></aspxform:XDataBrowserButton>
            </div>
            <div class="xbb-调拨使用地点 xbb-调入使用地点">
                <aspxform:XDataBrowserButton id="XDataBrowserButton{{code}}" runat="server" text="…" DisableExpress='!(Global.StepName=="开始")' xdatasource="TableName:SN_PUB_OfficeLocation" displaycolumns="Site:办公地点;Address:办公地点具体地址;RoleSystem:角色体系" DataMap="Site->{{tableCode}}.{{code}}"></aspxform:XDataBrowserButton>
            </div>
            <div class="xbb-车名">
                <aspxform:XDataBrowserButton id="XDataBrowserButton{{code}}" runat="server" Text="…" DisableExpress='!(Global.StepName=="开始")' XDataSource="TableName:SN_PUB_VehicleModel" DataMap="VehicleName->{{tableCode}}.{{code}};LicensePlate->{{dataMap0}}" DisplayColumns="VehicleName:车辆名称,300;BearingNumber:承载人数,300;Status:状态,300;LicensePlate:车牌号,300;VehicleType:车辆类型,300;UseUnit:使用单位,300;VehicleWarden:车辆管理员,300;Bak:备注,300"></aspxform:XDataBrowserButton>
            </div>
            <div class="xbb-财务公司">
                <aspxform:XDataBrowserButton id="XDataBrowserButton{{code}}" runat="server" Text="…" HiddenExpress='Global.StepName!="开始"' DataMap="CompanyName->{{tableCode}}.{{code}};RoleSYS->{{dataMap1}};RoleDeptCode->{{dataMap0}}" DisplayColumns="CompanyName:单位名称,200;LegalRepresentative:法人代表,200;ORGCodeCertificate:组织机构代码证,200;TaxID:税务登记号,200;ForShort:简称,200;ListedOrNot:是否上市公司,50;RoleSYS:角色体系,50;IsolationLevel:隔离级别,50;Forbidden:是否禁用,50" XDataSource="TableName:SN_PUB_FinanceCenter"></aspxform:XDataBrowserButton>
            </div>

            <!--系统用户-->
            <div class="xbb-personSelectWidget">
                <aspxform:XSelectUserButton id="XSelectUserButton{{code}}" runat="server" Width="100%" DisableExpress='Global.StepName!="开始"' DataMap="DisplayName->{{tableCode}}.{{code}};Account->{{dataMap0}}"></aspxform:XSelectUserButton>
            </div>
            <!--系统部门-->
            <div class="xbb-departmentSelectWidget">
                <aspxform:XSelectOUButton id="XSelectOUButton{{code}}" runat="server" Width="100%" DisableExpress='!(Global.StepName=="开始")' DataMap="OUName->{{tableCode}}.{{code}};OUCode->{{dataMap0}}"></aspxform:XSelectOUButton>
            </div>
        </div>

        <!--说明-->
        <div class="describeWidget">
            <div class="tf-col-md12">
                <div class="tf-form-item">
                    <aspxform:XLabel runat="server" Text="{{title}}" BackColor="#FFF5EA" TextAlign="left" Width="100%"></aspxform:XLabel>
                </div>
            </div>
        </div>
        <!--文本框（必填）-->
        <div class="defaultWidgetRequired textWidgetRequired">
            <div class="tf-col-md4">
                <div class="tf-form-item">
                    <label class="tf-form-label">
                        <aspxform:XLabel id="XLabel{{code}}" runat="server" text="{{title}}"></aspxform:XLabel>
                        <aspxform:XLabel id="RedLabel{{code}}" runat="server" text="*" ForeColor="Red"></aspxform:XLabel>
                    </label>
                    <div class="tf-input-block">
                        <aspxform:XTextBox id="XTextBox{{code}}" runat="server" XDataBind="{{tableCode}}.{{code}}" FieldName="{{title}}" BorderWidth="1px" BorderColor="Gainsboro" Width="100%" Max="0" Min="0" ValueToDisplayText HiddenInput="False" PlaceHolder="{{placeholder}}" tt="atts"></aspxform:XTextBox>
                        <aspxform:XRequiredFieldValidator id="XRequiredFieldValidator{{code}}" runat="server" ForeColor="Red" ControlToValidate="XTextBox{{code}}" ErrorMessage="请填写{{title}}" Display="None">{{title}}</aspxform:XRequiredFieldValidator>
                    </div>
                </div>
            </div>
        </div>
        <!--文本框（非必填）-->
        <div class="defaultWidget textWidget">
            <div class="tf-col-md4">
                <div class="tf-form-item">
                    <label class="tf-form-label">
                        <aspxform:XLabel id="XLabel{{code}}" runat="server" text="{{title}}"></aspxform:XLabel>
                    </label>
                    <div class="tf-input-block">
                        <aspxform:XTextBox id="XTextBox{{code}}" runat="server" XDataBind="{{tableCode}}.{{code}}" FieldName="{{title}}" BorderWidth="1px" BorderColor="Gainsboro" Width="100%" Max="0" Min="0" ValueToDisplayText HiddenInput="False" PlaceHolder="{{placeholder}}" tt="atts"></aspxform:XTextBox>
                    </div>
                </div>
            </div>
        </div>

        <!--日期（必填）-->
        <div class="dateWidgetRequired">
            <div class="tf-col-md4">
                <div class="tf-form-item">
                    <label class="tf-form-label">
                        <aspxform:XLabel id="XLabel{{code}}" runat="server" text="{{title}}"></aspxform:XLabel>
                        <aspxform:XLabel id="RedLabel{{code}}" runat="server" text="*" ForeColor="Red"></aspxform:XLabel>
                    </label>
                    <div class="tf-input-block">
                        <aspxform:XDateTimePicker id="XDateTimePicker{{code}}" runat="server" Width="100%" FieldName="{{title}}" XDataBind="{{tableCode}}.{{code}}" BorderColor="#DCDCDC" BorderWidth="1" tt="atts"></aspxform:XDateTimePicker>
                        <aspxform:XRequiredFieldValidator id="XRequiredFieldValidator{{code}}" runat="server" ForeColor="Red" ControlToValidate="XDateTimePicker{{code}}" ErrorMessage="请填写{{title}}" Display="None">{{title}}</aspxform:XRequiredFieldValidator>
                    </div>
                </div>
            </div>
        </div>
        <!--日期（非必填）-->
        <div class="dateWidget">
            <div class="tf-col-md4">
                <div class="tf-form-item">
                    <label class="tf-form-label">
                        <aspxform:XLabel id="XLabel{{code}}" runat="server" text="{{title}}"></aspxform:XLabel>
                    </label>
                    <div class="tf-input-block">
                        <aspxform:XDateTimePicker id="XDateTimePicker{{code}}" runat="server" Width="100%" FieldName="{{title}}" XDataBind="{{tableCode}}.{{code}}" BorderColor="#DCDCDC" BorderWidth="1" tt="atts"></aspxform:XDateTimePicker>
                    </div>
                </div>
            </div>
        </div>

        <!--开窗文本框（必填）-->
        <div class="apiIntegrationWidgetRequired personSelectWidgetRequired departmentSelectWidgetRequired">
            <div class="tf-col-md4">
                <div class="tf-form-item item-suffix">
                    <label class="tf-form-label">
                        <aspxform:XLabel id="XLabel{{code}}" runat="server" text="{{title}}"></aspxform:XLabel>
                        <aspxform:XLabel id="RedLabel{{code}}" runat="server" text="*" ForeColor="Red"></aspxform:XLabel>
                    </label>
                    <div class="tf-input-block">
                        <aspxform:XTextBox id="XTextBox{{code}}" runat="server" XDataBind="{{tableCode}}.{{code}}" FieldName="{{title}}" BorderWidth="1px" BorderColor="Gainsboro" Width="100%" Max="0" Min="0" ValueToDisplayText HiddenInput="False" PlaceHolder ReadOnly="True"></aspxform:XTextBox>
                        <aspxform:XRequiredFieldValidator id="XRequiredFieldValidator{{code}}" runat="server" ForeColor="Red" ControlToValidate="XTextBox{{code}}" ErrorMessage="请填写{{title}}" Display="None">{{title}}</aspxform:XRequiredFieldValidator>
                    </div>
                    <div class="tf-input-suffix">
                        {{XDataBrowserButton}}
                    </div>
                    <div class="after-msg">
                    </div>
                </div>
            </div>
        </div>
        <!--开窗文本框（非必填）-->
        <div class="apiIntegrationWidget personSelectWidget departmentSelectWidget">
            <div class="tf-col-md4">
                <div class="tf-form-item item-suffix">
                    <label class="tf-form-label">
                        <aspxform:XLabel id="XLabel{{code}}" runat="server" text="{{title}}"></aspxform:XLabel>
                    </label>
                    <div class="tf-input-block">
                        <aspxform:XTextBox id="XTextBox{{code}}" runat="server" XDataBind="{{tableCode}}.{{code}}" FieldName="{{title}}" BorderWidth="1px" BorderColor="Gainsboro" Width="100%" Max="0" Min="0" ValueToDisplayText HiddenInput="False" PlaceHolder ReadOnly="True"></aspxform:XTextBox>
                    </div>
                    <div class="tf-input-suffix">
                        {{XDataBrowserButton}}
                    </div>
                    <div class="after-msg">
                    </div>
                </div>
            </div>
        </div>


        <!--金额（必填）-->
        <div class="moneyWidgetRequired arithmeticWidgetRequired">
            <div class="tf-col-md4">
                <div class="tf-form-item">
                    <label class="tf-form-label">
                        <aspxform:XLabel id="XLabel{{code}}" runat="server" text="{{title}}"></aspxform:XLabel>
                        <aspxform:XLabel id="RedLabel{{code}}" runat="server" text="*" ForeColor="Red"></aspxform:XLabel>
                    </label>
                    <div class="tf-input-block">
                        <aspxform:XTextBox id="XTextBox{{code}}" runat="server" XDataBind="{{tableCode}}.{{code}}" FieldName="{{title}}" BorderWidth="1px" BorderColor="Gainsboro" Width="100%" Max="0" Min="0" ValueToDisplayText HiddenInput="False" PlaceHolder="{{placeholder}}" Format="type:currency;pfx:￥;.2"></aspxform:XTextBox>
                        <aspxform:XRequiredFieldValidator id="XRequiredFieldValidator{{code}}" runat="server" ForeColor="Red" ControlToValidate="XTextBox{{code}}" ErrorMessage="请填写{{title}}" Display="None">{{title}}</aspxform:XRequiredFieldValidator>
                        大写：<aspxform:XLabel id="atoLabel{{code}}" runat="server" FieldName="大写" Express="javascript('atoc',{{tableCode}}.{{code}})"></aspxform:XLabel>
                    </div>
                </div>
            </div>
        </div>
        <!--金额（非必填）-->
        <div class="moneyWidget arithmeticWidget">
            <div class="tf-col-md4">
                <div class="tf-form-item">
                    <label class="tf-form-label">
                        <aspxform:XLabel id="XLabel{{code}}" runat="server" text="{{title}}"></aspxform:XLabel>
                    </label>
                    <div class="tf-input-block">
                        <aspxform:XTextBox id="XTextBox{{code}}" runat="server" XDataBind="{{tableCode}}.{{code}}" FieldName="{{title}}" BorderWidth="1px" BorderColor="Gainsboro" Width="100%" Max="0" Min="0" ValueToDisplayText HiddenInput="False" PlaceHolder="{{placeholder}}" Format="type:currency;pfx:￥;.2"></aspxform:XTextBox>
                        大写：<aspxform:XLabel id="atoLabel{{code}}" runat="server" FieldName="大写" Express="javascript('atoc',{{tableCode}}.{{code}})"></aspxform:XLabel>
                    </div>
                </div>
            </div>
        </div>
        <!--下拉框（必填）-->
        <div class="radioWidgetRequired">
            <div class="tf-col-md4">
                <div class="tf-form-item">
                    <label class="tf-form-label">
                        <aspxform:XLabel id="XLabel{{code}}" runat="server" text="{{title}}"></aspxform:XLabel>
                        <aspxform:XLabel id="RedLabel{{code}}" runat="server" text="*" ForeColor="Red"></aspxform:XLabel>
                    </label>
                    <div class="tf-input-block">
                        <XTransfarControl:XComboBox id="ddl{{code}}" runat="server" XDataBind="{{tableCode}}.{{code}}" FieldName="{{title}}" Width="100%">
                            {{options}}
                        </XTransfarControl:XComboBox>
                        <aspxform:XRequiredFieldValidator id="XRequiredFieldValidator{{code}}" runat="server" ForeColor="Red" ControlToValidate="ddl{{code}}" ErrorMessage="请选择{{title}}" Display="None">{{title}}</aspxform:XRequiredFieldValidator>
                    </div>
                </div>
            </div>
        </div>
        <!--下拉框（非必填）-->
        <div class="radioWidget">
            <div class="tf-col-md4">
                <div class="tf-form-item">
                    <label class="tf-form-label">
                        <aspxform:XLabel id="XLabel{{code}}" runat="server" text="{{title}}"></aspxform:XLabel>
                    </label>
                    <div class="tf-input-block">
                        <XTransfarControl:XComboBox id="ddl{{code}}" runat="server" XDataBind="{{tableCode}}.{{code}}" FieldName="{{title}}" Width="100%">
                            {{options}}
                        </XTransfarControl:XComboBox>
                    </div>
                </div>
            </div>
        </div>
        <!--文本域（必填）-->
        <div class="textAreaWidgetRequired">
            <div class="tf-col-md12">
                <div class="tf-form-item">
                    <label class="tf-form-label label-full-height">
                        <aspxform:XLabel id="XLabel{{code}}" runat="server" text="{{title}}"></aspxform:XLabel>
                        <aspxform:XLabel id="RedLabel{{code}}" runat="server" text="*" ForeColor="Red"></aspxform:XLabel>
                    </label>
                    <div class="tf-input-block">
                        <aspxform:XTextBox id="XTextBox{{code}}" runat="server" PlaceHolder="{{placeholder}}" XDataBind="{{tableCode}}.{{code}}" FieldName="{{title}}" BorderWidth="1" BorderColor="#DCDCDC" Width="100%" Rows="5" TextMode="MultiLine"></aspxform:XTextBox>
                        <aspxform:XRequiredFieldValidator id="XRequiredFieldValidator{{code}}" runat="server" ForeColor="Red" ControlToValidate="XTextBox{{code}}" ErrorMessage="请填写{{title}}" Display="None">{{title}}</aspxform:XRequiredFieldValidator>
                    </div>
                </div>
            </div>

        </div>
        <!--文本域（非必填）-->
        <div class="textAreaWidget">
            <div class="tf-col-md12">
                <div class="tf-form-item">
                    <label class="tf-form-label label-full-height">
                        <aspxform:XLabel id="XLabel{{code}}" runat="server" text="{{title}}"></aspxform:XLabel>
                    </label>
                    <div class="tf-input-block">
                        <aspxform:XTextBox id="XTextBox{{code}}" runat="server" PlaceHolder="{{placeholder}}" XDataBind="{{tableCode}}.{{code}}" FieldName="{{title}}" BorderWidth="1" BorderColor="#DCDCDC" Width="100%" Rows="5" TextMode="MultiLine"></aspxform:XTextBox>
                    </div>
                </div>
            </div>
        </div>
        <!--相关流程及关联审批单 (必填)  -->
        <div class="relatedWidgetRequired">
            <hr class="tf-hr tf-bg-gray" />
            <div class="tf-collapse">
                <div class="tf-colla-title">
                    <span>
                        {{title}}
                        <aspxform:XLabel id="RedLabel{{code}}" runat="server" text="*" ForeColor="Red"></aspxform:XLabel>
                    </span>
                    <div class="tf-colla-icon">
                    </div>
                </div>
                <div class="tf-colla-cont is-show">
                    <aspxform:XRequiredFieldValidator id="XRequiredFieldValidator{{code}}" runat="server" ForeColor="Red" ControlToValidate="XHistoryForm{{code}}" ErrorMessage="请选择{{title}}" Display="None">{{title}}</aspxform:XRequiredFieldValidator>
                    <XTransfarControl:XHistoryForm id="XHistoryForm{{code}}" runat="server" XDataBind="{{tableCode}}.{{code}}" FieldName="{{title}}" Width="100%" height="50px"></XTransfarControl:XHistoryForm>
                </div>
            </div>
        </div>
        <!--相关流程及关联审批单 (非必填) -->
        <div class="relatedWidget">
            <hr class="tf-hr tf-bg-gray" />
            <div class="tf-collapse">
                <div class="tf-colla-title">
                    <span>{{title}}</span>
                    <div class="tf-colla-icon">
                    </div>
                </div>
                <div class="tf-colla-cont is-show">
                    <XTransfarControl:XHistoryForm id="XHistoryForm{{code}}" runat="server" XDataBind="{{tableCode}}.{{code}}" FieldName="{{title}}" Width="100%" height="50px"></XTransfarControl:XHistoryForm>
                </div>
            </div>
        </div>
        <!--图片(必填) -->
        <div class="imageWidgetRequired">
            <hr class="tf-hr tf-bg-gray" />
            <div class="tf-collapse">
                <div class="tf-colla-title">
                    <span>
                        {{title}}
                        <aspxform:XLabel id="RedLabel{{code}}" runat="server" text="*" ForeColor="Red"></aspxform:XLabel>
                    </span>
                    <div class="tf-colla-icon">
                    </div>
                </div>
                <div class="tf-colla-cont is-show">
                    <aspxform:XRequiredFieldValidator id="XRequiredFieldValidator{{code}}" runat="server" ForeColor="Red" ControlToValidate="XImageAttachment{{code}}" ErrorMessage="请选择{{title}}" Display="None">{{title}}</aspxform:XRequiredFieldValidator>
                    <aspxform:XImageAttachment id="XImageAttachment{{code}}" runat="server" XDataBind="{{tableCode}}.{{code}}" FieldName="{{title}}" BorderWidth="3px" BorderColor="Gainsboro" Width="112px" Height="128px" BorderStyle="Solid"></aspxform:XImageAttachment>
                    &nbsp;
                </div>
            </div>
        </div>
        <!--图片(非必填)-->
        <div class="imageWidget">
            <hr class="tf-hr tf-bg-gray" />
            <div class="tf-collapse">
                <div class="tf-colla-title">
                    <span>{{title}}</span>
                    <div class="tf-colla-icon">
                    </div>
                </div>
                <div class="tf-colla-cont is-show">
                    <aspxform:XImageAttachment id="XImageAttachment{{code}}" runat="server" XDataBind="{{tableCode}}.{{code}}" FieldName="{{title}}" BorderWidth="3px" BorderColor="Gainsboro" Width="112px" Height="128px" BorderStyle="Solid"></aspxform:XImageAttachment>
                    &nbsp;
                </div>
            </div>
        </div>
        <!--附件(必填)  -->
        <div class="attachmentWidgetRequired">
            <hr class="tf-hr tf-bg-gray" />
            <div class="tf-collapse">
                <div class="tf-colla-title">
                    <span>
                        {{title}}
                        <aspxform:XLabel id="RedLabel{{code}}" runat="server" text="*" ForeColor="Red"></aspxform:XLabel>
                    </span>
                    <div class="tf-colla-icon">
                    </div>
                </div>
                <div class="tf-colla-cont is-show">
                    <aspxform:XRequiredFieldValidator id="XRequiredFieldValidator{{code}}" runat="server" ForeColor="Red" ControlToValidate="XAttachments{{code}}" ErrorMessage="请选择{{title}}" Display="None">{{title}}</aspxform:XRequiredFieldValidator>
                    <aspxform:XAttachments id="XAttachments{{code}}" runat="server" XDataBind="{{tableCode}}.{{code}}" FieldName="{{title}}" FileTypes="*.doc;*.docx;*.xls;*.xlsx;*.pdf;*.png;*.jpg;*.jpeg;*.gif" FileTypesDescription="Word,Excel,Pdf" width="100%"></aspxform:XAttachments>
                </div>
            </div>
        </div>
        <!--附件(非必填)  -->
        <div class="attachmentWidget">
            <hr class="tf-hr tf-bg-gray" />
            <div class="tf-collapse">
                <div class="tf-colla-title">
                    <span>
                        {{title}}
                    </span>
                    <div class="tf-colla-icon">
                    </div>
                </div>
                <div class="tf-colla-cont is-show">
                    <aspxform:XAttachments id="XAttachments{{code}}" runat="server" XDataBind="{{tableCode}}.{{code}}" FieldName="{{title}}" FileTypes="*.doc;*.docx;*.xls;*.xlsx;*.pdf;*.png;*.jpg;*.jpeg;*.gif" FileTypesDescription="Word,Excel,Pdf" width="100%"></aspxform:XAttachments>
                </div>
            </div>
        </div>
        <!--明细-->
        <div class="tableWidget">
            <!--明细表格容器-->
            <div class="tableBox">
                <hr class="tf-hr tf-bg-gray" />
                <div class="tf-collapse">
                    <div class="tf-colla-title">
                        <span>明细信息</span>
                        <div class="tf-colla-icon">
                        </div>
                    </div>
                    {{tableWidget}}
                </div>
            </div>
            <!--明细表模板-->
            <div class="table-tt">
                <div class="tf-colla-cont is-show">
                    <div class="tf-table-prefix">
                        <div class="title clearfix">
                            <span>{{tableName}}</span>
                            <div class="tf-table-tools fr">
                                <aspxform:XAddBlockButton id="XAddBlockButton{{tableCode}}" runat="server" Text="添加行" TableName="{{tableCode}}" CssClass="addRowBtn"></aspxform:XAddBlockButton>
                            </div>
                        </div>
                    </div>
                    <div class="table-box">
                        <table width="100%" title="{{tableName}}" class="tf-table" deletelastrow="Denied" dynamicarea="1,1">
                            <tbody>
                                <tr class="thead">
                                    <td width="5%">
                                        序号
                                    </td>
                                    <td>{{ths}}</td>
                                    <td width="5%">
                                        操作
                                    </td>
                                </tr>
                                <tr>
                                    <td>
                                        <aspxform:XGridLineNo id="XGridLineNo2" runat="server" BorderWidth="1" Width="100%" BackColor="Transparent" TextAlign="Center" BorderStyle="None">1</aspxform:XGridLineNo>
                                    </td>
                                    <td>{{tds}}</td>
                                    <td>
                                        <input class="delRowBtn" onclick="DeleteRow()" type="button" value="删除行" />
                                    </td>
                                </tr>
                                <tr>
                                    <td>
                                    </td>
                                    <td>{{tds2}}</td>
                                    <td>
                                    </td>
                                </tr>
                                <tr>
                                    <td>{{tds3}}</td>
                                    <td>
                                        合计金额：
                                        <aspxform:XLabel id="XLabelTotal" runat="server" XDataBind="Total" FieldName="总金额(元)" Format="type:currency;pfx:￥;.2" BackColor="Transparent"></aspxform:XLabel>
                                    </td>
                                    <td>
                                    </td>
                                </tr>
                            </tbody>
                        </table>
                    </div>
                </div>

            </div>
            <!--表头(非必填)-->
            <div class="tableWidget-th-tt">
                {{title}}&nbsp;
            </div>
            <!--表头(必填)-->
            <div class="tableWidget-th-tt-required">
                {{title}}&nbsp;<aspxform:XLabel id="lbl{{tableCode}}{{code}}" runat="server" Visibility="False" text="*" ForeColor="Red" BackColor="Transparent"></aspxform:XLabel>
                <aspxform:XRequiredFieldValidator id="XRequiredFieldValidator{{tableCode}}{{code}}" runat="server" ControlToValidate="c{{tableCode}}{{code}}" ErrorMessage="请填写{{title}}" Display="None" ForeColor="Red">{{title}}</aspxform:XRequiredFieldValidator>
            </div>

            <div class="tableWidget-textWidget tableWidget-defaultWidget">
                <aspxform:XTextBox id="c{{tableCode}}{{code}}" runat="server" FieldName="{{title}}" XDataBind="{{tableCode}}.{{code}}" Width="100%" BorderColor="#DCDCDC" BorderWidth="1"></aspxform:XTextBox>
            </div>
            <div class="tableWidget-dateWidget">
                <aspxform:XDateTimePicker id="c{{tableCode}}{{code}}" runat="server" Width="100%" FieldName="{{title}}" XDataBind="{{tableCode}}.{{code}}" BorderColor="#DCDCDC" BorderWidth="1"></aspxform:XDateTimePicker>
            </div>
            <div class="tableWidget-apiIntegrationWidget">
                <table width="100%" style="BORDER-TOP: medium none; BORDER-RIGHT: medium none; BORDER-BOTTOM: medium none; BORDER-LEFT: medium none" border="0" cellspacing="0" cellpadding="0">
                    <tbody>
                        <tr>
                            <td style="BORDER-TOP: medium none; BORDER-RIGHT: medium none; BORDER-BOTTOM: medium none; BORDER-LEFT: medium none">
                                <aspxform:XTextBox id="c{{tableCode}}{{code}}" runat="server" FieldName="{{title}}" XDataBind="{{tableCode}}.{{code}}" Width="100%" BorderColor="#DCDCDC" BorderWidth="1"></aspxform:XTextBox>
                            </td>
                            <td style="BORDER-TOP: medium none; BORDER-RIGHT: medium none; BORDER-BOTTOM: medium none; BORDER-LEFT: medium none">
                                <aspxform:XDataBrowserButton id="xData{{tableCode}}{{code}}" runat="server" Text="…" DisableExpress='!(Global.StepName=="开始")' XDataSource="L" DisplayColumns=""></aspxform:XDataBrowserButton>
                            </td>
                        </tr>
                    </tbody>
                </table>
            </div>
            <div class="tableWidget-personSelectWidget">
                <table width="100%" style="BORDER-TOP: medium none; BORDER-RIGHT: medium none; BORDER-BOTTOM: medium none; BORDER-LEFT: medium none" border="0" cellspacing="0" cellpadding="0">
                    <tbody>
                        <tr>
                            <td width="98%" style="BORDER-TOP: medium none; BORDER-RIGHT: medium none; BORDER-BOTTOM: medium none; BORDER-LEFT: medium none">
                                <aspxform:XTextBox id="c{{tableCode}}{{code}}" runat="server" FieldName="{{title}}" XDataBind="{{tableCode}}.{{code}}" Width="100%" BorderColor="#DCDCDC" BorderWidth="1"></aspxform:XTextBox>
                            </td>
                            <td style="BORDER-TOP: medium none; BORDER-RIGHT: medium none; BORDER-BOTTOM: medium none; BORDER-LEFT: medium none">
                                <aspxform:XSelectUserButton id="selUser{{tableCode}}{{code}}" runat="server" DisableExpress='Global.StepName!="开始"' DataMap="DisplayName->{{tableCode}}.{{code}}"></aspxform:XSelectUserButton>
                            </td>
                        </tr>
                    </tbody>
                </table>
            </div>

            <div class="tableWidget-radioWidget">
                <XTransfarControl:XComboBox id="c{{tableCode}}{{code}}" runat="server" XDataBind="{{tableCode}}.{{code}}" FieldName="{{title}}" Width="100%">
                    {{options}}
                </XTransfarControl:XComboBox>
            </div>
            <div class="tableWidget-moneyWidget">
                <aspxform:XTextBox id="c{{tableCode}}{{code}}" runat="server" FieldName="{{title}}" XDataBind="{{tableCode}}.{{code}}" Width="100%" BorderColor="#DCDCDC" BorderWidth="1" Format="type:currency;pfx:￥;.2"></aspxform:XTextBox>
            </div>
            <div class="tableWidget-numberWidget">
                <aspxform:XTextBox id="c{{tableCode}}{{code}}" runat="server" FieldName="{{title}}" XDataBind="{{tableCode}}.{{code}}" Width="100%" BorderColor="#DCDCDC" BorderWidth="1" Format="type:number;.0"></aspxform:XTextBox>
            </div>
            <div class="tableWidget-arithmeticWidget">
                <aspxform:XTextBox id="c{{tableCode}}{{code}}" runat="server" FieldName="{{title}}" XDataBind="{{tableCode}}.{{code}}" Width="100%" BorderColor="#DCDCDC" BorderWidth="1" Format="type:currency;pfx:￥;.2"></aspxform:XTextBox>
            </div>
        </div>
        <!--page-->
        <div class="pageHtml">
            PCVAIFBhZ2UgTGFuZ3VhZ2U9IkMjIiAlPgo8JUAgUmVnaXN0ZXIgVGFnUHJlZml4PSJhc3B4Zm9ybSIgTmFtZXNwYWNlPSJYRm9ybURlc2lnbmVyLkZyYW1ld29yay5XZWIuVUkiIEFzc2VtYmx5PSJYRm9ybURlc2lnbmVyLkZyYW1ld29yayIgJT4KPCVAIFJlZ2lzdGVyIFRhZ1ByZWZpeD0iWFRyYW5zZmFyQ29udHJvbCIgTmFtZXNwYWNlPSJCUE0uVHJhbnNmYXIuWFVzZXJDb250cm9scyIgQXNzZW1ibHk9IkJQTS5UcmFuc2Zhci5YVXNlckNvbnRyb2xzIiAlPgo8c2NyaXB0IHJ1bmF0PSJzZXJ2ZXIiPgoKICAgIC8vIEluc2VydCBwYWdlIGNvZGUgaGVyZQogICAgLy8KCjwvc2NyaXB0Pgo8IURPQ1RZUEUgaHRtbD4KPGh0bWwgeG1sbnM6WEZvcm09InhtbG5zOnhmb3JtIj4KCjxoZWFkIHJ1bmF0PSJzZXJ2ZXIiPgogICAgPG1ldGEgaHR0cC1lcXVpdj0iWC1VQS1Db21wYXRpYmxlIiBjb250ZW50PSJJRT1FZGdlIiAvPgogICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2Fsc2U9MSwgbWF4aW11bS1zY2FsZT0xIiAvPgogICAgPHRpdGxlPkJQTSBGb3JtPC90aXRsZT4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vc3R5bGUvbGF5dWkvdGhlbWUvaWNvbmZvbnQvaWNvbmZvbnQuY3NzIiAvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9zdHlsZS9sYXl1aS90aGVtZS9jc3MvZ2xvYmFsLmNzcyIgLz4KICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCiAgICAgICAgLy/lrZfnrKbkuLLov57mjqXmlrnms5UKICAgICAgICBmdW5jdGlvbiBzdHJpbmdKb2luKHNwbGl0Q2hhciwgcGFyYW0xKSB7CiAgICAgICAgICAgIHZhciByZXN1bHQgPSAnJzsKICAgICAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT0gMSkgewogICAgICAgICAgICAgICAgcmVzdWx0ID0gYXJndW1lbnRzWzBdOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09IDIpIHsKICAgICAgICAgICAgICAgIHJlc3VsdCA9IGFyZ3VtZW50c1sxXTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA+IDIpIHsKICAgICAgICAgICAgICAgIHZhciBzY2hhciA9IHNwbGl0Q2hhciB8fCAnJzsKICAgICAgICAgICAgICAgIHZhciBhcnIgPSBuZXcgQXJyYXkoKTsKICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKGFyZ3VtZW50c1tpXSAmJiB0eXBlb2YgKGFyZ3VtZW50c1tpXSkgIT0gIm9iamVjdCIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWYodHlwZW9mIChhcmd1bWVudHNbaV0pID09ICJzdHJpbmciKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJyLnB1c2goYXJndW1lbnRzW2ldLnRyaW0oKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgYXJyLnB1c2goYXJndW1lbnRzW2ldKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICByZXN1bHQgPSBhcnIuam9pbihzY2hhcik7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICB9CgoKICAgICAgICAvL+Wtl+espuS4suagvOW8j+WMluaWueazlQogICAgICAgIGZ1bmN0aW9uIHN0cmluZ0Zvcm1hdCAoKSB7CiAgICAgICAgICAgIHZhciByZXN1bHQgPSAnJzsKICAgICAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPiAwKSB7CiAgICAgICAgICAgICAgICByZXN1bHQgPSBhcmd1bWVudHNbMF07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPiAxKSB7CiAgICAgICAgICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PSAyICYmIHR5cGVvZiAoYXJndW1lbnRzWzFdKSA9PSAib2JqZWN0IikgewogICAgICAgICAgICAgICAgICAgIHZhciBhcmdzID0gYXJndW1lbnRzWzFdOwogICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGtleSBpbiBhcmdzKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhcmdzW2tleV0gIT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcmVnID0gbmV3IFJlZ0V4cCgiKHsiICsga2V5ICsgIn0pIiwgImciKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdC5yZXBsYWNlKHJlZywgYXJnc1trZXldKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgewoJCQkJCXZhciBhbGxJc051bGwgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhcmd1bWVudHNbaV0gIT0gdW5kZWZpbmVkICAmJiB0eXBlb2YgKGFyZ3VtZW50c1tpXSkgIT0gIm9iamVjdCIpIHsKCQkJCQkJCWlmKGFyZ3VtZW50c1tpXSAhPT0gdW5kZWZpbmVkICYmIGFyZ3VtZW50c1tpXSAhPT0gJycgJiYgYXJndW1lbnRzW2ldICE9PSBudWxsKSBhbGxJc051bGwgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vdmFyIHJlZyA9IG5ldyBSZWdFeHAoIih7WyIgKyAoaSAtIDEpICsgIl19KSIsICJnIik7Ly/ov5nkuKrlnKjntKLlvJXlpKfkuo455pe25Lya5pyJ6Zeu6aKY77yM6LCi6LCi5L2V5Lul56yZ566r55qE5oyH5Ye6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcmVnID0gbmV3IFJlZ0V4cCgiKHspIiArIChpIC0gMSkgKyAiKH0pIiwgImciKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdC5yZXBsYWNlKHJlZywgYXJndW1lbnRzW2ldKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCQkJCQlpZihhbGxJc051bGwpIHJlc3VsdCA9ICcnOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgfQoKCiAgICAgICAgZnVuY3Rpb24gc3RyaW5nU3ViKGZ1bGxuYW1lLCBhY2MpIHsKICAgICAgICAgICAgdmFyIGFjY2xlbmd0aCA9IGFjYy5sZW5ndGggKyAxOwogICAgICAgICAgICBpZiAoZnVsbG5hbWUgIT0gIiIpIHsKICAgICAgICAgICAgICAgIGZ1bGxuYW1lID0gZnVsbG5hbWUuc3Vic3RyaW5nKDgpCiAgICAgICAgICAgICAgICBmdWxsbmFtZSA9IGZ1bGxuYW1lLnN1YnN0cmluZygwLCBmdWxsbmFtZS5sZW5ndGggLSBhY2NsZW5ndGgpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiBmdWxsbmFtZTsKICAgICAgICB9CgogICAgICAgIC8vIOaVsOWtl+i9rOaNouaIkOWkp+WGmemHkemineWHveaVsAogICAgICAgIGZ1bmN0aW9uIGF0b2MobnVtYmVyVmFsdWUpIHsKICAgICAgICAgICAgdmFyIG51bWJlclZhbHVlID0gbmV3IFN0cmluZyhNYXRoLnJvdW5kKG51bWJlclZhbHVlICogMTAwKSk7IC8vIOaVsOWtl+mHkeminQogICAgICAgICAgICB2YXIgY2hpbmVzZVZhbHVlID0gIiI7IC8vIOi9rOaNouWQjueahOaxieWtl+mHkeminQogICAgICAgICAgICB2YXIgU3RyaW5nMSA9ICLpm7blo7notLDlj4HogobkvI3pmYbmn5LmjYznjpYiOyAvLyDmsYnlrZfmlbDlrZcKICAgICAgICAgICAgdmFyIFN0cmluZzIgPSAi5LiH5Luf5L2w5ou+5Lq/5Luf5L2w5ou+5LiH5Luf5L2w5ou+5YWD6KeS5YiGIjsgLy8g5a+55bqU5Y2V5L2NCiAgICAgICAgICAgIHZhciBsZW4gPSBudW1iZXJWYWx1ZS5sZW5ndGg7IC8vIG51bWJlclZhbHVlIOeahOWtl+espuS4sumVv+W6pgogICAgICAgICAgICB2YXIgQ2gxOyAvLyDmlbDlrZfnmoTmsYnor63or7vms5UKICAgICAgICAgICAgdmFyIENoMjsgLy8g5pWw5a2X5L2N55qE5rGJ5a2X6K+75rOVCiAgICAgICAgICAgIHZhciBuWmVybyA9IDA7IC8vIOeUqOadpeiuoeeul+i/nue7reeahOmbtuWAvOeahOS4quaVsAogICAgICAgICAgICB2YXIgU3RyaW5nMzsgLy8g5oyH5a6a5L2N572u55qE5pWw5YC8CiAgICAgICAgICAgIGlmIChsZW4gPiAxNSkgewogICAgICAgICAgICAgICAgYWxlcnQoIui2heWHuuiuoeeul+iMg+WbtCIpOwogICAgICAgICAgICAgICAgcmV0dXJuICIiOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChudW1iZXJWYWx1ZSA9PSAwKSB7CiAgICAgICAgICAgICAgICBjaGluZXNlVmFsdWUgPSAi6Zu25YWD5pW0IjsKICAgICAgICAgICAgICAgIHJldHVybiBjaGluZXNlVmFsdWU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgU3RyaW5nMiA9IFN0cmluZzIuc3Vic3RyKFN0cmluZzIubGVuZ3RoIC0gbGVuLCBsZW4pOyAvLyDlj5blh7rlr7nlupTkvY3mlbDnmoRTVFJJTkcy55qE5YC8CiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyBpKyspIHsKICAgICAgICAgICAgICAgIFN0cmluZzMgPSBwYXJzZUludChudW1iZXJWYWx1ZS5zdWJzdHIoaSwgMSksIDEwKTsgLy8g5Y+W5Ye66ZyA6L2s5o2i55qE5p+Q5LiA5L2N55qE5YC8CiAgICAgICAgICAgICAgICBpZiAoaSAhPSAobGVuIC0gMykgJiYgaSAhPSAobGVuIC0gNykgJiYgaSAhPSAobGVuIC0gMTEpICYmIGkgIT0gKGxlbiAtIDE1KSkgewogICAgICAgICAgICAgICAgICAgIGlmIChTdHJpbmczID09IDApIHsKICAgICAgICAgICAgICAgICAgICAgICAgQ2gxID0gIiI7CiAgICAgICAgICAgICAgICAgICAgICAgIENoMiA9ICIiOwogICAgICAgICAgICAgICAgICAgICAgICBuWmVybyA9IG5aZXJvICsgMTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoU3RyaW5nMyAhPSAwICYmIG5aZXJvICE9IDApIHsKICAgICAgICAgICAgICAgICAgICAgICAgQ2gxID0gIumbtiIgKyBTdHJpbmcxLnN1YnN0cihTdHJpbmczLCAxKTsKICAgICAgICAgICAgICAgICAgICAgICAgQ2gyID0gU3RyaW5nMi5zdWJzdHIoaSwgMSk7CiAgICAgICAgICAgICAgICAgICAgICAgIG5aZXJvID0gMDsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIENoMSA9IFN0cmluZzEuc3Vic3RyKFN0cmluZzMsIDEpOwogICAgICAgICAgICAgICAgICAgICAgICBDaDIgPSBTdHJpbmcyLnN1YnN0cihpLCAxKTsKICAgICAgICAgICAgICAgICAgICAgICAgblplcm8gPSAwOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgeyAvLyDor6XkvY3mmK/kuIfkur/vvIzkur/vvIzkuIfvvIzlhYPkvY3nrYnlhbPplK7kvY0KICAgICAgICAgICAgICAgICAgICBpZiAoU3RyaW5nMyAhPSAwICYmIG5aZXJvICE9IDApIHsKICAgICAgICAgICAgICAgICAgICAgICAgQ2gxID0gIumbtiIgKyBTdHJpbmcxLnN1YnN0cihTdHJpbmczLCAxKTsKICAgICAgICAgICAgICAgICAgICAgICAgQ2gyID0gU3RyaW5nMi5zdWJzdHIoaSwgMSk7CiAgICAgICAgICAgICAgICAgICAgICAgIG5aZXJvID0gMDsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoU3RyaW5nMyAhPSAwICYmIG5aZXJvID09IDApIHsKICAgICAgICAgICAgICAgICAgICAgICAgQ2gxID0gU3RyaW5nMS5zdWJzdHIoU3RyaW5nMywgMSk7CiAgICAgICAgICAgICAgICAgICAgICAgIENoMiA9IFN0cmluZzIuc3Vic3RyKGksIDEpOwogICAgICAgICAgICAgICAgICAgICAgICBuWmVybyA9IDA7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKFN0cmluZzMgPT0gMCAmJiBuWmVybyA+PSAzKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIENoMSA9ICIiOwogICAgICAgICAgICAgICAgICAgICAgICBDaDIgPSAiIjsKICAgICAgICAgICAgICAgICAgICAgICAgblplcm8gPSBuWmVybyArIDE7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICBDaDEgPSAiIjsKICAgICAgICAgICAgICAgICAgICAgICAgQ2gyID0gU3RyaW5nMi5zdWJzdHIoaSwgMSk7CiAgICAgICAgICAgICAgICAgICAgICAgIG5aZXJvID0gblplcm8gKyAxOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBpZiAoaSA9PSAobGVuIC0gMTEpIHx8IGkgPT0gKGxlbiAtIDMpKSB7IC8vIOWmguaenOivpeS9jeaYr+S6v+S9jeaIluWFg+S9je+8jOWImeW/hemhu+WGmeS4igogICAgICAgICAgICAgICAgICAgICAgICBDaDIgPSBTdHJpbmcyLnN1YnN0cihpLCAxKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBjaGluZXNlVmFsdWUgPSBjaGluZXNlVmFsdWUgKyBDaDEgKyBDaDI7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKFN0cmluZzMgPT0gMCkgeyAvLyDmnIDlkI7kuIDkvY3vvIjliIbvvInkuLow5pe277yM5Yqg5LiK4oCc5pW04oCdCiAgICAgICAgICAgICAgICBjaGluZXNlVmFsdWUgPSBjaGluZXNlVmFsdWUgKyAi5pW0IjsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gY2hpbmVzZVZhbHVlOwogICAgICAgIH0KCiAgICAgICAgZnVuY3Rpb24gRGVsZXRlUm93KCkgewogICAgICAgICAgICB2YXIgZXYgPSB3aW5kb3cuZXZlbnQ7CiAgICAgICAgICAgIHZhciBlbCA9IGV2LnRhcmdldCB8fCBldi5zcmNFbGVtZW50OwogICAgICAgICAgICB2YXIgdnAgPSB7IHg6IGV2LnBhZ2VYLCB5OiBldi5wYWdlWSB9OwogICAgICAgICAgICB2YXIgZyA9IFlaU29mdC5mb3Jtcy5maWVsZC5HcmlkQmFzZS5oaXRUZXN0R3JpZCh2cCk7CiAgICAgICAgICAgIHZhciBiaSA9IC0xOwogICAgICAgICAgICBpZiAoZykKICAgICAgICAgICAgICAgIGJpID0gWVpTb2Z0LmZvcm1zLmZpZWxkLkdyaWRCYXNlLmhpdFRlc3RCbG9jayhnLCB2cC55KTsKCiAgICAgICAgICAgIHZhciBiYyA9IGcuQmxvY2tzLmxlbmd0aDsKICAgICAgICAgICAgaWYgKChiYyA8PSAwKSB8fCAoYmMgPT0gMSAmJiBnLmdldEVsZVR5cGUoKS5HcmlkRGVmaW5lLlNob3dPbmVCbG9ja0Fsd2F5cykpIHsKICAgICAgICAgICAgICAgIC8vaWYgKChiYyA8PSAwKSB8fCAoYmMgPT0gMSkpIHsKICAgICAgICAgICAgICAgIGFsZXJ0KCLmnIDlkI7kuIDooYzkuI3lhYHorrjliKDpmaQiKTsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgICAgICBnLmRlbGV0ZUJsb2NrcyhiaSwgMSk7CiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9CgogICAgPC9zY3JpcHQ+CjwvaGVhZD4KCjxib2R5PgogICAgPGZvcm0gcnVuYXQ9InNlcnZlciI+CiAgICAgICAgPCEtLSBJbnNlcnQgY29udGVudCBoZXJlIC0tPgogICAgICAgIDxkaXYgY2xhc3M9Im1haW4tdGl0IGNsZWFyZml4Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2l0ZS1sIGZsIj4KICAgICAgICAgICAgICAgIDxpbWcgYWx0PSIiIHNyYz0iL1laU29mdC9mb3Jtcy9zdHlsZS9sYXl1aS90aGVtZS9pbWcvU05fTE9HTy5wbmciIC8+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzaXRlLWgxIj4KICAgICAgICAgICAgICAgIHt7cGFnZVRpdGxlfX0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNpdGUtciBmciI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJudW0iPgogICAgICAgICAgICAgICAgICAgIDxhc3B4Zm9ybTpYTGFiZWwgaWQ9IlhMX1NOVGV4dCIgcnVuYXQ9InNlcnZlciIgVGV4dD0i5rWB5rC05Y+377yaIj48L2FzcHhmb3JtOlhMYWJlbD4KICAgICAgICAgICAgICAgICAgICA8Y2l0ZT4KICAgICAgICAgICAgICAgICAgICAgICAgPGFzcHhmb3JtOlhMYWJlbCBpZD0iWExfU04iIHJ1bmF0PSJzZXJ2ZXIiIFRleHQ9Ii0t57O757uf6Ieq5Yqo55Sf5oiQLS0iIFhEYXRhQmluZD0iU05fUFVCX0ZMT1dDT01NT04uRm9ybU51bWJlciIgVmlzaWJpbGl0eT0iRmFsc2UiIEZpZWxkTmFtZT0i5rWB5rC05Y+3Ij48L2FzcHhmb3JtOlhMYWJlbD4KICAgICAgICAgICAgICAgICAgICA8L2NpdGU+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRhdGUiPgogICAgICAgICAgICAgICAgICAgIDxhc3B4Zm9ybTpYTGFiZWwgaWQ9IlhMX0RhdGVUZXh0IiBydW5hdD0ic2VydmVyIiBUZXh0PSLnlLPor7fml7bpl7TvvJoiPjwvYXNweGZvcm06WExhYmVsPgogICAgICAgICAgICAgICAgICAgIDxjaXRlPgogICAgICAgICAgICAgICAgICAgICAgICA8YXNweGZvcm06WExhYmVsIGlkPSJYTF9EYXRlIiBydW5hdD0ic2VydmVyIiBYRGF0YUJpbmQ9IlNOX1BVQl9GTE9XQ09NTU9OLkNyZWF0ZURhdGUiIFZpc2liaWxpdHk9IkZhbHNlIiBGaWVsZE5hbWU9IueUs+ivt+aXtumXtCI+PC9hc3B4Zm9ybTpYTGFiZWw+CiAgICAgICAgICAgICAgICAgICAgPC9jaXRlPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InRmLWZsdWlkIHRmLWJ0bi1mbHVpZCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRmLWNvbGxhcHNlIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRmLWNvbGxhLXRpdGxlIj4KICAgICAgICAgICAgICAgICAgICA8c3Bhbj7nlLPor7fkurrkv6Hmga8gPC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRmLWNvbGxhLWljb24iPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0Zi1jb2xsYS1jb250IGlzLXNob3ciPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRmLXJvdyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRmLWNvbC1tZDQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGYtZm9ybS1pdGVtIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9InRmLWZvcm0tbGFiZWwiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXNweGZvcm06WExhYmVsIGlkPSJYTGFiZWwxIiBydW5hdD0ic2VydmVyIiB0ZXh0PSLnlLPor7fkuroiPjwvYXNweGZvcm06WExhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGYtaW5wdXQtYmxvY2siPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXNweGZvcm06WFRleHRCb3ggaWQ9IlhUeHRfUkVRVVNFUk5BTUVfQUNDT1VOVCIgcnVuYXQ9InNlcnZlciIgRmllbGROYW1lPSLnlLPor7fkuroiIEJvcmRlcldpZHRoPSIxIiBCb3JkZXJDb2xvcj0iI0RDRENEQyIgV2lkdGg9IjEwMCUiIEVuYWJsZWQ9IkZhbHNlIiBFeHByZXNzPSJqYXZhc2NyaXB0KCdzdHJpbmdGb3JtYXQnLCAnezB9KHsxfSknLFNOX1BVQl9GTE9XQ09NTU9OLkNyZWF0ZVVzZXJOYW1lLFNOX1BVQl9GTE9XQ09NTU9OLkNyZWF0ZVVzZXJBY2NvdW50KSI+PC9hc3B4Zm9ybTpYVGV4dEJveD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGYtY29sLW1kNCB0Zi1oaWRkZW4iIGhpZGRlbmV4cHJlc3M9IjEiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGYtZm9ybS1pdGVtIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9InRmLWZvcm0tbGFiZWwiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXNweGZvcm06WExhYmVsIGlkPSJYTGFiZWwyIiBydW5hdD0ic2VydmVyIiB0ZXh0PSLnlLPor7fkurrotKblj7ciPjwvYXNweGZvcm06WExhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGYtaW5wdXQtYmxvY2siPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXNweGZvcm06WFRleHRCb3ggaWQ9IlhUeHRfQ3JlYXRlVXNlckFjY291bnRUIiBydW5hdD0ic2VydmVyIiBYRGF0YUJpbmQ9IlNOX1BVQl9GTE9XQ09NTU9OLkNyZWF0ZVVzZXJBY2NvdW50IiBGaWVsZE5hbWU9IueUs+ivt+S6uui0puWPtyIgQm9yZGVyV2lkdGg9IjEiIEJvcmRlckNvbG9yPSIjRENEQ0RDIiBXaWR0aD0iMTAwJSIgRW5hYmxlZD0iRmFsc2UiIEhpZGRlbkV4cHJlc3M9IjEiPjwvYXNweGZvcm06WFRleHRCb3g+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRmLWNvbC1tZDQgdGYtaGlkZGVuIiBoaWRkZW5leHByZXNzPSIxIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRmLWZvcm0taXRlbSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJ0Zi1mb3JtLWxhYmVsIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFzcHhmb3JtOlhMYWJlbCBpZD0iWExhYmVsMyIgcnVuYXQ9InNlcnZlciIgdGV4dD0i55Sz6K+35Lq65aeT5ZCNIj48L2FzcHhmb3JtOlhMYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRmLWlucHV0LWJsb2NrIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFzcHhmb3JtOlhUZXh0Qm94IGlkPSJYVHh0X0NyZWF0ZVVzZXJOYW1lIiBydW5hdD0ic2VydmVyIiBYRGF0YUJpbmQ9IlNOX1BVQl9GTE9XQ09NTU9OLkNyZWF0ZVVzZXJOYW1lIiBGaWVsZE5hbWU9IueUs+ivt+S6uuWnk+WQjSIgQm9yZGVyV2lkdGg9IjEiIEJvcmRlckNvbG9yPSIjRENEQ0RDIiBXaWR0aD0iMTAwJSIgRW5hYmxlZD0iRmFsc2UiIEhpZGRlbkV4cHJlc3M9IjEiPjwvYXNweGZvcm06WFRleHRCb3g+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRmLWNvbC1tZDQgdGYtaGlkZGVuIiBoaWRkZW5leHByZXNzPSIxIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRmLWZvcm0taXRlbSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJ0Zi1mb3JtLWxhYmVsIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFzcHhmb3JtOlhMYWJlbCBpZD0iWExhYmVsNCIgcnVuYXQ9InNlcnZlciIgdGV4dD0i5Lq65ZGY5YWo6Lev5b6EIj48L2FzcHhmb3JtOlhMYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRmLWlucHV0LWJsb2NrIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFzcHhmb3JtOlhUZXh0Qm94IGlkPSJYVHh0X0NyZWF0ZVVzZXJGdWxsTmFtZSIgcnVuYXQ9InNlcnZlciIgWERhdGFCaW5kPSJTTl9QVUJfRkxPV0NPTU1PTi5DcmVhdGVVc2VyRnVsbE5hbWUiIEZpZWxkTmFtZT0i5Lq65ZGY5YWo6Lev5b6EIiBCb3JkZXJXaWR0aD0iMSIgQm9yZGVyQ29sb3I9IiNEQ0RDREMiIFdpZHRoPSIxMDAlIiBFbmFibGVkPSJGYWxzZSIgSGlkZGVuRXhwcmVzcz0iMSI+PC9hc3B4Zm9ybTpYVGV4dEJveD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGYtY29sLW1kNCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0Zi1mb3JtLWl0ZW0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0idGYtZm9ybS1sYWJlbCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhc3B4Zm9ybTpYTGFiZWwgaWQ9IlhMYWJlbDUiIHJ1bmF0PSJzZXJ2ZXIiIHRleHQ9IumDqOmXqOWQjeensCI+PC9hc3B4Zm9ybTpYTGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0Zi1pbnB1dC1ibG9jayI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhc3B4Zm9ybTpYVGV4dEJveCBpZD0iWFR4dF9DcmVhdGVEZXB0TmFtZSIgcnVuYXQ9InNlcnZlciIgWERhdGFCaW5kPSJTTl9QVUJfRkxPV0NPTU1PTi5DcmVhdGVEZXB0TmFtZSIgRmllbGROYW1lPSLpg6jpl6jlkI3np7AiIEJvcmRlcldpZHRoPSIxIiBCb3JkZXJDb2xvcj0iI0RDRENEQyIgV2lkdGg9IjEwMCUiIEVuYWJsZWQ9IkZhbHNlIj48L2FzcHhmb3JtOlhUZXh0Qm94PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0Zi1jb2wtbWQ0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRmLWZvcm0taXRlbSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJ0Zi1mb3JtLWxhYmVsIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFzcHhmb3JtOlhMYWJlbCBpZD0iWExhYmVsNiIgcnVuYXQ9InNlcnZlciIgdGV4dD0i5omA5bGe6YOo6ZeoIj48L2FzcHhmb3JtOlhMYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRmLWlucHV0LWJsb2NrIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFzcHhmb3JtOlhUZXh0Qm94IGlkPSJYVFhUX0RlcHRGdWxsIiBydW5hdD0ic2VydmVyIiBGaWVsZE5hbWU9IuaJgOWxnumDqOmXqCIgQm9yZGVyV2lkdGg9IjEiIEJvcmRlckNvbG9yPSIjRENEQ0RDIiBXaWR0aD0iMTAwJSIgRW5hYmxlZD0iRmFsc2UiIEV4cHJlc3M9ImphdmFzY3JpcHQoJ3N0cmluZ1N1YicsU05fUFVCX0ZMT1dDT01NT04uQ3JlYXRlVXNlckZ1bGxOYW1lLFNOX1BVQl9GTE9XQ09NTU9OLkNyZWF0ZVVzZXJBY2NvdW50KSI+PC9hc3B4Zm9ybTpYVGV4dEJveD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGhyIGNsYXNzPSJ0Zi1ociB0Zi1iZy1ncmF5IiAvPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0Zi1jb2xsYXBzZSI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0Zi1jb2xsYS10aXRsZSIgcnVuYXQ9InNlcnZlciI+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4+5Z+65pys5L+h5oGvPC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRmLWNvbGxhLWljb24iPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0Zi1jb2xsYS1jb250IGlzLXNob3ciPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRmLXJvdyI+CiAgICAgICAgICAgICAgICAgICAgICAgIHt7Zm9ybU1haW59fQogICAgICAgICAgICAgICAgICAgICAgICA8IS0tIOaWh+acrOahhuagt+W8jy3mkpHmu6EgLS0+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIHt7Y29udGVudH19CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRmLWNvbGxhcHNlIj4KICAgICAgICAgICAgICAgIDxociBjbGFzcz0idGYtaHIgdGYtYmctZ3JheSIgLz4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRmLWNvbGxhLXRpdGxlIj4KICAgICAgICAgICAgICAgICAgICA8c3Bhbj7lrqHmibnljoblj7I8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGYtY29sbGEtaWNvbiI+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRmLWNvbGxhLWNvbnQgaXMtc2hvdyI+CiAgICAgICAgICAgICAgICAgICAgPFhUUkFOU0ZBUkNPTlRST0w6WFhTSUdOVFJBQ0UgaWQ9IlRCX1hTaWduVHJhY2UiIHJ1bmF0PSJzZXJ2ZXIiIEJvcmRlcldpZHRoPSIxIiBCb3JkZXJDb2xvcj0iI2RjZGNkYyIgV2lkdGg9IjEwMCUiIENzc0NsYXNzPSJUQl9YU2lnblRyYWNlIj48L1hUUkFOU0ZBUkNPTlRST0w6WFhTSUdOVFJBQ0U+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3N0eWxlL2xheXVpL3RoZW1lL2pxdWVyeS5taW4uanMiPjwvc2NyaXB0PgogICAgICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9zdHlsZS9sYXl1aS90aGVtZS9jb21tb24uanMiPjwvc2NyaXB0PgogICAgPC9mb3JtPgo8L2JvZHk+CjwvaHRtbD4=
        </div>
    </div>
</body>
</html>